使用SQL Server中的触发器更新另一个表的特定列时更新表

时间:2016-02-04 08:47:44

标签: sql sql-server

我正在使用此触发器:

create trigger UpdateCustomerOnWholeSellerIdChange
on Invoice after update
as
begin
    set nocount on;
    if update(WholeSellerId)
    begin
        update Customer
        set Customer.WholeSellerId = d.WholeSellerId
        from deleted d
        where d.CustomerId = Customer.CustomerId
    end
end

我想要完成的是:每个CustomerId都有自己的WholeSellerId,这意味着每个Customer都有自己的推销员。在Invoice表格中,每个Invoice都有自己的CustomerIdWholeSellerId

因此,当我更新WholeSellerId表格中的Invoice时,我想更新WholeSellerId表的Customer以及WholeSellerId Invoice表格。

使用上面的代码,即使我更新了WholeSellerId表格中的Invoice,它也不会更新Customer的{​​{1}}。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您正在使用<div id="content"> Your data will be loaded here </div> 表作为源,其中包含更新运行之前的数据。将其替换为具有新数据的deleted表。

MSDN - Use the inserted and deleted Tables