Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用插入ID的SQL Server触发器_Sql_Sql Server_Triggers_Identity Insert - Fatal编程技术网

使用插入ID的SQL Server触发器

使用插入ID的SQL Server触发器,sql,sql-server,triggers,identity-insert,Sql,Sql Server,Triggers,Identity Insert,我想针对数据库中的表插入创建一个触发器。例如,如果我有一个company_name表,我想执行以下操作: 在服务器A上的公司名称表中插入新行 调用一个触发器,该触发器获取服务器a上公司名称中新插入的行id。 在服务器B的公司名称表上设置identity_insert ON 将刚刚插入服务器A的同一行插入服务器B上的公司名称表中。 链接的服务器可以称为[ServerB].[ServerB Database].dbo.company\u name 这是由于不同国家/地区客户的数据托管限制而提出的要求

我想针对数据库中的表插入创建一个触发器。例如,如果我有一个company_name表,我想执行以下操作:

在服务器A上的公司名称表中插入新行 调用一个触发器,该触发器获取服务器a上公司名称中新插入的行id。 在服务器B的公司名称表上设置identity_insert ON 将刚刚插入服务器A的同一行插入服务器B上的公司名称表中。 链接的服务器可以称为[ServerB].[ServerB Database].dbo.company\u name


这是由于不同国家/地区客户的数据托管限制而提出的要求。

一个问题是a国和B国之间的滞后和连接

当远程插入发生时,本地事务仍在运行。这会降低性能并增加阻塞

远程服务器也可能不可用。或者花太长时间来回应。您可以对触发器进行编码,使其不会失败,但这样您就有了不一致的数据

最后,如果远程服务器上存在插入,则会出现多主机问题

<>我真的会考虑像复制这样的解决方案来把数据发布到另一个服务器。
或者考虑使用Service Bug对本地和远程插入进行解耦。

< P>一个问题是A和B之间的滞后和连接。 当远程插入发生时,本地事务仍在运行。这会降低性能并增加阻塞

远程服务器也可能不可用。或者花太长时间来回应。您可以对触发器进行编码,使其不会失败,但这样您就有了不一致的数据

最后,如果远程服务器上存在插入,则会出现多主机问题

<>我真的会考虑像复制这样的解决方案来把数据发布到另一个服务器。
或者考虑使用Service Bug来去掉本地和远程插入。

这是什么问题?我怎么写这个触发器来做这个?ID是GUID,如果不是,你如何避免服务器A中的ID与B中的ID冲突?如果服务器B不可用,您想做什么,在服务器a中插入失败?我看到了一些问题。在触发器中不使用Scope_标识,除非它在执行插入操作,否则使用伪表。如果触发器不能处理多行,请编写触发器代码以处理多行,或者显式使用失败。您最好寻找其他方法来实现这一点,如ServiceBroker。在触发器中调用跨服务器/跨国家的分布式事务将导致各种不愉快。那么您对此有什么问题?我将如何编写此触发器来实现此目的?id是guid吗?如果不是,您将如何避免服务器a中的id与服务器B中的id冲突?如果服务器B不可用,您想做什么,在服务器a中插入失败?我看到了一些问题。在触发器中不使用Scope_标识,除非它在执行插入操作,否则使用伪表。如果触发器不能处理多行,请编写触发器代码以处理多行,或者显式使用失败。您最好寻找其他方法来实现这一点,如ServiceBroker。在触发器中调用跨服务器/跨国家的分布式事务将导致各种各样的不愉快。谢谢您的回答。我想我将采用另一种方法。谢谢你的回答。我想我会用一种不同的方法。