如何创建 locationID 类型的列来表示 SQL Server 合并复制中创建行的服务器?
我想在两个 SQL Server 2008 服务器之间设置合并复制。对于主键,我想使用复合键:一个标识列加上一个表示该行是在哪个服务器上创建的列(locationID 列)。
关于如何做到这一点有什么想法吗?我不确定是否可以使用触发器或函数在每次输入行时插入默认值,但我读过这种方法是可能的 - 只是找不到如何准确执行此操作的详细步骤。 感谢您提供的任何帮助或参考!
I want to setup merge replication between two SQL Server 2008 Servers. For the Primary Key’s, I’d like to use a composite key: an identity column plus a column that will denote which server the row was created on (locationID column).
Any ideas on how to do this? I’m not sure if you could use a trigger or a function to insert a default value every time a row is entered, but I’ve read this method is possible – just can’t find detailed steps on how to exactly do it.
Thanks for any help or references you can provide!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在对等事务复制场景中,我使用了一种为每个服务器分配一个编号的技术,该编号将用作身份种子的个位数字。然后,将每个身份增加 10,而不是默认的 1。因此,服务器 1 分配的身份是 1, 11, 21, 31, ...,服务器 2 分配的身份是 2, 12, 22, 32, ...
In a peer-to-peer transactional replication scenario, I've used a technique of assigning each server a number, which will serve as the ones digit of the identity seed. Then, increment each identity by ten instead of the default 1. So, identities assigned by server 1 are 1, 11, 21, 31, ... and identites assigned by server 2 are 2, 12, 22, 32, ...
您可以添加
varchar
列并将其默认值设置为HOST_NAME()
。然后配置订阅者的主机名。You could add a
varchar
column and set it's default value toHOST_NAME()
. Then configure the host name of the subscriber.