您好我有以下触发器。
ALTER TRIGGER [dbo].[DivisionLastModified] ON [dbo].[tb_Division]
WITH EXECUTE AS CALLER
FOR INSERT, UPDATE
AS
BEGIN
UPDATE tb_Division SET LastModified = GetDate()
END
这会更新所有行,但我只想修改更新/添加的行。 这可以实现吗?
答案 0 :(得分:0)
这是因为您更新了所有行
UPDATE tb_Division SET LastModified = GetDate()
您必须指定最后插入或更新的行ID
所以你可以在Where条件中指定一些像这样的东西
UPDATE tb_Division SET LastModified = GetDate() where id=4
答案 1 :(得分:0)
要在受插入或更新影响的行上更新LastModified,您需要使用仅在触发器中可用的inserted
表。
ALTER TRIGGER [dbo].[DivisionLastModified]
ON [dbo].[tb_Division]
WITH EXECUTE AS CALLER FOR INSERT, UPDATE AS
BEGIN
UPDATE tb_Division
SET LastModified = GetDate()
WHERE tb_Division.<Primary Key Column Name Here> IN (
SELECT <Primary Key Column Name Here> FROM inserted
)
END