我對用戶名和暱稱字段都有唯一的限制。當我使用重複的暱稱運行以下代碼時,SQL Server 2008報告Err 23000違反唯一密鑰約束。但是當我用重複的用戶名運行它時沒有錯誤(雖然消息「影響行:0」的結果並且沒有改變對錶產生影響)。SQL Server 2008插入失敗報告
我不明白爲什麼這應該是或如何處理這個(我想在任何一種情況下引發的錯誤)。提前致謝。
INSERT INTO會員(用戶名,暱稱) VALUES( '鮑勃', 'bob55')
CREATE TABLE [Members].[Members] (
[GUID] uniqueidentifier NOT NULL DEFAULT (newsequentialid()) ,
[UserName] nvarchar(256) NOT NULL ,
[NickName] nvarchar(256) NOT NULL ,
)
-- ----------------------------
-- Indexes structure for table Members
-- ----------------------------
CREATE UNIQUE INDEX [Index:UserName] ON [Members].[Members]
([UserName] ASC)
WITH (IGNORE_DUP_KEY = ON)
GO
-- ----------------------------
-- Primary Key structure for table Members
-- ----------------------------
ALTER TABLE [Members].[Members] ADD PRIMARY KEY ([GUID])
GO
-- ----------------------------
-- Uniques structure for table Members
-- ----------------------------
ALTER TABLE [Members].[Members] ADD UNIQUE ([NickName] ASC)
GO
ALTER TABLE [Members].[Members] ADD UNIQUE ([UserName] ASC)
GO
請出示你的表DEF和INSERT語句。 – DeanOC
該行爲與您的DDL中的「IGNORE_DUP_KEY = ON」一致。但我不知道爲什麼它忽略了另外兩個限制。首先將「ON」改爲「OFF」。這是出於任何原因嗎? –
更多的信息在這裏:http://stackoverflow.com/questions/533659/why-would-you-not-set-ignore-dup-key-to-on –