我正在使用SQL Server 2008 R2,C#和ASP.Net。我有一張表,其中包含一個組合主鍵,其中包含一個故障單號碼以及故障單出現在表中的次數。車票頻率由C#代碼計算:複合主鍵/外鍵頭痛
VTTTickets.InsertParameters[0].DefaultValue = VTTTTicketNoBox.Text;
string CommString = "SELECT COUNT(*) FROM [Tickets] WHERE [Ticket_No] = " +
VTTTTicketNoBox.Text;
string ConnString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
OdbcConnection Conn = new OdbcConnection(ConnString);
Conn.Open();
OdbcCommand FooCommand = newOdbcCommand(CommString,Conn);
int FooVal = Convert.ToInt32(FooCommand.ExecuteScalar()) + 1;
VTTTickets.InsertParameters[1].DefaultValue = Convert.ToString(FooVal);
VTTTTicketNoBox.Text = "";
Conn.Close();
我的表約束的/ etc代碼
CONSTRAINT [PK_Tickets] PRIMARY KEY CLUSTERED
([Ticket_No] ASC, [Ticket_Sub_No] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = ON,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [Unique_Ticket_No] UNIQUE NONCLUSTERED
([Ticket_No] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = ON,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
) ON [PRIMARY]
GO
的原因唯一約束是因爲主複合鍵的一部分也是一個外鍵另外兩張桌子。 我不斷收到的錯誤是當它在唯一約束列中存在重複值時對我大叫。一旦所有東西都從開發中轉移到生產中,這可能會發生,因爲可能會重新提交一張票。
有沒有辦法讓外鍵沒有唯一的鍵約束? 如果不是,我該如何解決這個問題?
您不應該編輯您的問題來提出完全不同的問題:改爲發佈爲新問題。 – 2011-05-09 13:58:08