SQL Server触发器 - 将上次更新的日期插入到与外键链接的表中

时间:2011-10-10 04:38:19

标签: sql-server triggers sql-server-2008-r2

我使用的是SQL Server 2008 R2。

我有两个表,ShoppingListShoppingListFoodShoppingListFood通过ShoppingList上的外键与ShopListID相关联。我希望在LastModifiedDate表中完成任何更新/插入时更新ShoppingList表中的ShoppingListFood列。有可能??

我用谷歌搜索,发现我需要在存储过程中创建触发器,但我对此一无所知,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

当然 - 没问题 - 试试这样的事情:

CREATE TRIGGER trg_UpdateShoppingListFood
ON dbo.ShoppingListFood
AFTER INSERT, UPDATE
AS
    UPDATE dbo.ShoppingList
    SET LastModifiedDate = GETDATE()
    WHERE ShopListID IN (SELECT DISTINCT ShopListID FROM Inserted)

基本上,这会在ShoppingListFood上的INSERT和UPDATE之后创建一个触发器 - 它会为已插入和/或更新的所有行更新LastModifiedDate到“现在”在触发器内可用的伪表Inserted上。

此伪表包含刚刚插入的所有行(及其所有列),以及已更新的所有行的新值(再次:所有列)。