Kry*_*nya -1 t-sql sql-server triggers
这是我的代码:
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
Run Code Online (Sandbox Code Playgroud)
它会弹出以下错误:消息512,级别16,状态1,过程产品_UPDATE,行13 [批次启动行21]子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.
我不明白错误或如何解决它.有人可以指点我正确的方向吗?
你不能使用常规比较运算符NULL- 任何比较的东西NULL都是未定义的,因此是"假".
您唯一可以检查的NULL是使用IS NULL或IS NOT NULL:
UPDATE Products
SET DateAdded = GETDATE()
WHERE DateAdded IS NULL;
Run Code Online (Sandbox Code Playgroud)