SQL Server 2008 データベース テーブルに一意の制約があり、その制約には 4 つの列が含まれています。テスト データを入力しているときに、予期せず一意の制約違反を受け取りました。4 つの列について、数値を入力し、値セットを挿入し、数値をインクリメントしてから繰り返しました (つまり、(1,1,1,1) (2,2,2,2,)... など)。 . 10 になったときに違反が発生しました。ここで数値を入力すると、制約に違反します。次に、「A」という文字だけを入力してみました。また、「A」で始まる単語を挿入しようとしたところ、違反が発生しました。制約で何かを変更する必要がありますか、それとも実際にどのように機能するはずですか?
ALTER TABLE [dbo].[Table] ADD CONSTRAINT [UC_Table_Column1_Column2_Column3_Column4]
UNIQUE NONCLUSTERED
(
[Column1] ASC,
[Column2] ASC,
[Column3] ASC,
[Column4] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON
[PRIMARY]