我找到了一个创建和修改记录的触发器示例,但问题是,我应该为每个表创建这两个触发器,还是有任何方法在每次更新时运行它们并插入而不管表名是什么。当然,对于每个表,字段的名称将是唯一的,例如&#34; CreationDate&#34;,&#34; LastUpdate&#34;。实际上第一个问题应该是,为这种情况创建一个触发器是正确的做法,还是我应该在代码背后处理它?</ p>
这是我在互联网上找到的触发器;
CREATE TRIGGER tr[TableName]CreateDate ON [TableName]
FOR INSERT
AS
UPDATE [TableName] SET [TableName].Created=getdate()
FROM [TableName] INNER JOIN Inserted ON [TableName].[UniqueID]= Inserted.[UniqueID]
GO
CREATE TRIGGER tr[TableName]LastModifiedDate ON [TableName]
FOR UPDATE
AS
UPDATE [TableName] SET [TableName].LastModified=getdate()
FROM [TableName] INNER JOIN Inserted ON [TableName].[UniqueID]= Inserted.[UniqueID]
答案 0 :(得分:1)
只需为触发器提供运行INSERT AND UPDATE
的选项即可CREATE TRIGGER [dbo].[tr_TableName] ON [dbo].[TableName] FOR INSERT,DELETE,UPDATE AS
BEGIN
/*
Do stuff here.
*/
Select * from Inserted
Select * from deleted
END
答案 1 :(得分:1)
可以在DML(表,视图事件)或DDL(创建,更改,删除等)上创建触发器。您无法创建适用于所有表的通用触发器,您需要指定表名。
如果需要,您可以创建一个脚本,自动为所有表创建触发器脚本。