创建插入触发器

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.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

我不明白错误或如何解决它.有人可以指点我正确的方向吗?

mar*_*c_s 7

不能使用常规比较运算符NULL- 任何比较的东西NULL都是未定义的,因此是"假".

您唯一可以检查的NULL是使用IS NULLIS NOT NULL:

UPDATE Products
SET DateAdded = GETDATE()
WHERE DateAdded IS NULL;
Run Code Online (Sandbox Code Playgroud)