Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
SQL Server 2000/2005标识列+复制_Sql_Sql Server 2005_Sql Server 2000_Replication - Fatal编程技术网

SQL Server 2000/2005标识列+复制

SQL Server 2000/2005标识列+复制,sql,sql-server-2005,sql-server-2000,replication,Sql,Sql Server 2005,Sql Server 2000,Replication,我已经看了一些资料,只是想澄清一下,并得到一个意见 首先,为了完全避免任何问题,我们可以不用麻烦使用标识列作为主键,而是让它们自己生成,并让这些值以两种方式复制,假定它们在任何创建时间都是唯一的 出于这个问题的目的,我谈论的是解决全局访问问题的两种或多种复制方式,我们有标识列 现在我们正在设置事务复制,两个数据库应该相互复制 据我所知,您为每个数据库服务器分配了一系列种子值,它将使用这些值,您知道这是唯一的原因,因为您给出的范围不会交叉。那么,这是否意味着在复制过程中,这些值会插入到seed列中

我已经看了一些资料,只是想澄清一下,并得到一个意见

首先,为了完全避免任何问题,我们可以不用麻烦使用标识列作为主键,而是让它们自己生成,并让这些值以两种方式复制,假定它们在任何创建时间都是唯一的

出于这个问题的目的,我谈论的是解决全局访问问题的两种或多种复制方式,我们有标识列

现在我们正在设置事务复制,两个数据库应该相互复制

据我所知,您为每个数据库服务器分配了一系列种子值,它将使用这些值,您知道这是唯一的原因,因为您给出的范围不会交叉。那么,这是否意味着在复制过程中,这些值会插入到seed列中

因此,如果在每台服务器插入10行后将范围1-10和11-20分配给2台服务器,那么这两个数据库中都会有种子1-20?

有一个选项可应用于标识列、触发器和其他约束

以你为例,, server1将为1-10种子,但只接受复制的11-20

设置种子的两种方法:

或者:将种子/增量设置为NOT,以便像这样进行复制

种子1,增量2 种子2,增量2 种子-1,增量-2 种子-2,增量-2 种子100000001,增量2 种子100000002,增量2 种子-100000002,增量-2 种子-100000001,增量-2 这将为8台服务器提供500000000台服务器

或: 添加名为ServerID的第二列以提供复合键,不用于ID列的复制

例如,tinyint可以扩展到256台服务器,每台服务器2^32行

无论哪种方式都有效…

有一个选项可以应用于标识列、触发器和其他约束

以你为例,, server1将为1-10种子,但只接受复制的11-20

设置种子的两种方法:

或者:将种子/增量设置为NOT,以便像这样进行复制

种子1,增量2 种子2,增量2 种子-1,增量-2 种子-2,增量-2 种子100000001,增量2 种子100000002,增量2 种子-100000002,增量-2 种子-100000001,增量-2 这将为8台服务器提供500000000台服务器

或: 添加名为ServerID的第二列以提供复合键,不用于ID列的复制

例如,tinyint可以扩展到256台服务器,每台服务器2^32行

无论哪种方法都有效