我有一个包含3个字段的表[ID,Name,LastUpdated].
LastUpdated的默认值为"GetDate(),因此在添加新记录时会自动填充.
当我在TABLE上运行UPDATE时,我希望将此字段重置为当前的GetDate().
CREATE TRIGGER dbo.Table1_Updated
ON dbo.Table1
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.Table1 SET LastUpdated = GETDATE()
END
GO
Run Code Online (Sandbox Code Playgroud)
但是因为我没有WHERE子句,所有记录都会更新.
问题:
我在哪里可以获得UPDATE触发器上更新记录的ID值?
我是否正在更新Trigger中的表字段,重新调用一个新的Trigger事件(等等)?
dan*_*era 25
从'INSERTED'开始,表INSERTED对INSERT,UPDATE触发器都是通用的.
CREATE TRIGGER dbo.Table1_Updated
ON dbo.Table1
FOR INSERT, UPDATE /* Fire this trigger when a row is INSERTed or UPDATEd */
AS BEGIN
UPDATE dbo.Table1 SET dbo.Table1.LastUpdated = GETDATE()
FROM INSERTED
WHERE inserted.id=Table1.id
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41140 次 |
| 最近记录: |