从表触发器更新链接的SQL Server上的两个表

时间:2018-12-20 09:37:45

标签: tsql triggers output linked-server table-valued-parameters

我要使用以下条件从AFTER INSERT触发器更新两个表:

  1. 插入后触发器可以返回多个行
  2. 要更新的表位于链接服务器上
  3. 要更新的表由uniqueidentifier链接

我尝试了两种不同的方法,发现了以下问题:

  1. 我使用INSERT INTO OUTPUT INTO SELECT来直接在触发器中更新远程服务器上的表。我使用OUTPUT来捕获uniqueidentifier以便在第二张表中创建行。但是,由于以下错误,这是不可能的:

“在包含OUTPUT子句或嵌套DML语句的语句中,不能将远程表用作DML目标。”

  1. 我在链接服务器上用TVP创建了一个SP,并尝试从触发器中调用它,但是由于以下错误,这似乎也是不可能的:
  

服务器之间的远程调用中不允许使用表值参数。

这两种方法在本地更新表时均有效,但在尝试更新链接服务器上的表时均无效。

首选解决方案是调用存储过程,但是在那种情况下,我将不得不使用游标遍历插入的行并为每一行调用存储过程。这是唯一的解决方案吗?

0 个答案:

没有答案