Sql server sql server中使用更新触发器的级联更新

Sql server sql server中使用更新触发器的级联更新,sql-server,Sql Server,在更新ProvinceID时,我正在使用以下代码更新Residence表中的外键值,但我收到此错误: update语句与引用约束“FK_居住省”冲突。冲突发生在数据库“”的表“dbo,派驻机构”列“派驻机构”中 代码: 我不明白你想在这里做什么-我们从where子句中知道,已删除。ProvinceID和已插入。ProvinceID是相等的,而relidences.relidencestate和deleted.ProvinceID是相等的-因此SET子句实际上执行了一个no-op命令。-旧样式的逗

在更新
ProvinceID
时,我正在使用以下代码更新
Residence
表中的外键值,但我收到此错误:

update语句与引用约束“FK_居住省”冲突。冲突发生在数据库“”的表“dbo,派驻机构”列“派驻机构”中

代码:


我不明白你想在这里做什么-我们从where子句中知道,
已删除。ProvinceID
已插入。ProvinceID
是相等的,而
relidences.relidencestate
deleted.ProvinceID
是相等的-因此
SET
子句实际上执行了一个no-op命令。-旧样式的逗号分隔表列表样式在更新ProvinceID时已随ANSI-92 SQL标准(20多年前)而终止,我想用触发器更新驻留表中的id。但正如你所说的,deleted.ProvinceID和inserted.ProvinceID将是相同的,那么如何区分两者呢?
CREATE trigger [dbo].[UPOnProvinceDelete] 
ON [seniors].[dbo].[Provinces] 
FOR UPDATE AS
    SET NOCOUNT ON

    IF UPDATE([ProvinceID])
    BEGIN
       UPDATE seniors.dbo.Residences
       SET [Residences].[ResidenceState] = inserted.[ProvinceID]
       FROM [Residences], deleted, inserted
       WHERE deleted.[ProvinceID]= [Residences].[ResidenceState]
         AND deleted.[ProvinceID]= inserted.[ProvinceID]
    END;