Tsql SQL查找并用触发器替换null

Tsql SQL查找并用触发器替换null,tsql,Tsql,我一直在尝试创建一个触发器,在DateAdded列中找到空值,并用当前日期或GETDATE()替换它们,我似乎写了很多行,但看起来很简单,更新后的方法正确吗 USE MyGuitarShop; GO IF OBJECT_ID('Products_INSERT') IS NOT NULL DROP TRIGGER Products_INSERT; GO CREATE TRIGGER Products_INSERT ON Products AFTER INSERT, U

我一直在尝试创建一个触发器,在DateAdded列中找到空值,并用当前日期或GETDATE()替换它们,我似乎写了很多行,但看起来很简单,更新后的方法正确吗

USE MyGuitarShop;
    GO

IF OBJECT_ID('Products_INSERT') IS NOT NULL
DROP TRIGGER Products_INSERT;

GO

CREATE TRIGGER Products_INSERT
    ON Products
    AFTER INSERT, UPDATE 
AS

  IF EXISTS (SELECT DateAdded FROM Inserted WHERE DateAdded = Null)
        UPDATE Products SET DateAdded = getDate() WHERE dateAdded IS NULL
GO................... 
插入到产品中(添加日期、产品代码、产品名称、说明、标价)
值(NULL、'halter'、'Hofner Icon'、''、699.99);。。。。。。。。。。。这是可行的,但每当我尝试更新语句并返回编辑屏幕时,所有内容都会被添加,但我添加的新行在dateadded下为空,如何使它自动更新到插入后的日期?据我所知,这应该是有效的(我确实将开始改为插入后更新),这应该作为您的
更新
语句

UPDATE Products SET DateAdded = getDate() WHERE dateAdded IS NULL 

或者,您可以使DateAdded列不为NULL,并添加GETDATE()的默认约束。这样,无论何时创建一行且DateAdded未给定值,它都将设置为当前日期:

ALTER TABLE dbo.Products
  ALTER COLUMN DateAdded datetime NOT NULL;

ALTER TABLE dbo.Products ADD  DEFAULT (GETDATE()) FOR DateAdded;

这是可行的,但每当我尝试更新语句并返回编辑屏幕时,所有内容都被添加,但我添加的新行在dateadded下为空,如何使它自动更新到插入后的日期?据我所知,这应该是可行的(我确实将开头改为“插入后更新”,我建议使用另一个答案并更新默认值。)