INSERT 语句运行正确,但引发"违反 PK 约束"错误?



我在Products表中插入第一个产品。我的答案语句工作正常,但我违反了主键约束:

无法在对象中插入重复键。重复的键值为 [...]。

记录正确插入,但它也会在我插入的记录上方插入"0"记录。不知道发生了什么。

我看不出我的插入语句哪里有问题,我基于 sqlservertutorial.net 的插入语句。我不知道出了什么问题。

INSERT INTO products (code, P_Name, p_line, P_Collection, P_Colour,
P_Size, P_Price, active)
VALUES ('17881832980551', 'Austin Record', 'T-Shirt', 'Classic', 'Athletic Heather',
'S', '39.50', 'Y');

Products表中的Code列是主键。

正如预期的那样,记录被正确插入,但我也插入了一个额外的"0"记录,以及以下错误消息:

(受影响的 2 行(

Msg 2627,级别 14,状态 1,第 3 行
违反主键约束"PK__Products__A25C5AA60C388384"。无法在对象 'dbo 中插入重复键。产品'。重复的键值为 (17881832980551(

试试这个

IF Not EXISTS(SELECT TOP 1 * FROM products WHERE code = '17881832980551')
BEGIN
INSERT INTO products (code, P_Name, p_line, P_Collection, P_Colour,
P_Size, P_Price, active)
VALUES ('17881832980551', 'Austin Record', 'T-Shirt', 'Classic', 'Athletic Heather',
'S', '39.50', 'Y');
END
ELSE
BEGIN
SELECT 'Record already added'
END

最新更新