【发布时间】:2013-05-22 00:14:32
【问题描述】:
我想针对在我的数据库中插入一个表创建一个触发器。例如,如果我有一个company_name 表,我想执行以下操作:
- 在服务器 A 上的
company_name表中插入新行 - 调用触发器以获取服务器 A 上
company_name中新插入的行的 ID。 -
Set identity_insert ON在服务器 B 中的company_name表上 - 将刚刚插入服务器 A 的同一行插入服务器 B 上的
company_name表中。
链接服务器可以参考[ServerB].[ServerB-Database].dbo.company_name。
由于不同国家/地区的客户的数据托管限制,这是一项要求。
【问题讨论】:
-
那么您对此有何疑问?
-
我将如何编写此触发器来执行此操作?
-
id 是 guid,如果不是,您将如何避免服务器 a 中的 id 与 B 中的 id 冲突?如果 serverB 不可用,你想做什么,在 server a 中插入失败?我看到了问题。
-
您最好寻找替代方法来执行此操作,例如 Service Broker。在触发器中调用跨服务器/跨国分布式事务会导致各种不愉快。
标签: sql sql-server triggers identity-insert