这是我的代码:
USE MyGuitarshop
GO
CREATE TRIGGER Products_INSERT
ON Products
FOR INSERT
AS
BEGIN
UPDATE Products
SET DateAdded = GETDATE()
WHERE DateAdded IS NULL;
END;
GO
USE MyGuitarShop
INSERT INTO Products (CategoryID, ProductCode, ProductName, Description, ListPrice, DiscountPercent, DateAdded)
VALUES (1, '229985', 'Quartz Watch', 'Lovely watch with a quartz face', 29.99, 12, NULL);
GO
USE MyGuitarShop
SELECT * FROM Products
弹出此错误:消息512,级别16,状态1,过程产品_UPDATE,行13 [批次启动行21] 子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。
我不明白错误或如何修复它。有人可以指出我正确的方向吗?
答案 0 :(得分:7)
你不能将常规比较运算符与NULL
一起使用 - 与NULL
相比的任何内容都是未定义的,因此" false"。
使用IS NULL
检查唯一可以使用IS NOT NULL
或UPDATE Products
SET DateAdded = GETDATE()
WHERE DateAdded IS NULL;
:
a
答案 1 :(得分:-3)
尝试
UPDATE inserted SET DateAdded = GETDATE() WHERE DateAdded IS NULL; END;