【发布时间】:2014-05-12 04:22:23
【问题描述】:
如果Products 表的DateAdded 列的值为null,我需要创建一个触发器来插入该列的当前日期。
这是我尝试过的:
Use MyGuitarShop;
IF OBJECT_ID ('Products_INSERT') IS NOT NULL
DROP TRIGGER Products_INSERT;
GO
CREATE TRIGGER Products_INSERT
ON Products
AFTER INSERT
AS
UPDATE Products
SET DateAdded = GETDATE()
WHERE DateAdded IS NULL
AND DateAdded IN (SELECT DateAdded FROM inserted);
GO
为了测试这一点,我运行了以下 INSERT 语句:
INSERT INTO Products
VALUES (4, 'AK-5300', 'Awesome Keyboard 5300',
'This keyboard is so awesome, you just might freak!',
699.99, 30.00, NULL)
运行INSERT 语句后,DateAdded 列仍然显示NULL。
感谢任何帮助。
非常感谢!
【问题讨论】:
-
为什么要为此使用触发器?只需为该列指定默认值
getdate()。 -
@GordonLinoff 这是我的任务的一部分,触发器的目的是更新将来可能插入的任何没有指定日期的记录,这样它就会包括当前日期。
标签: sql sql-server triggers sql-insert