主键带有“ NOT FOR REPLICATION”选项


21

我最近接手了一个项目,并且发现大多数表中的主键都具有“ NOT FOR REPLICATION” 属性。

我不是DBA,但是在大多数数据库中,没有主键的记录肯定会被视为损坏。这些记录中的大多数的主键几乎肯定会在某处用作外键。

这是以前的开发人员(谁不再为公司工作)的错误,还是涉及其他逻辑?我们甚至不在生产环境中使用复制,因此无论如何这实际上不会影响任何严重的事情,但是我想知道删除我不知道的所有这些指令是否还有其他副作用。

对于与该主题相关的许多搜索字词,我还没有找到很多有用的信息,因此,我可以肯定地说,这只是一个愚蠢的错误,我需要扭转,所以这个问题确实是为了缓解我的偏执狂。

Answers:


24

NOT FOR REPLICATION表示在将记录复制到该表时,通过复制代理插入到identity列中的任何值都将保留其在源系统中的原始值,但是在本地添加的任何记录仍会增加identity的值。

更新:旧链接断开

以下是table_constraint文档的链接,该文档详细说明了NOT FOR REPLICATION设置将执行的操作:

表约束


2
链接已烂
Aleksandr Kravets

@AleksandrKravets欢呼,已更新
秘密
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.