SQL Server数据库主键上的IdentityIsNotForReplication阻止迁移到SQL Azure

时间:2014-04-05 03:01:51

标签: sql-server azure azure-sql-database

我有一个SQL Server数据库,它是复制的最终结果。换句话说,它只是副本。我想使用Management Studio或BACPAC文件将此数据库迁移到SQL Azure。尝试这个我得到了我期望的东西,例如需要聚集索引,但我坚持的是每个表上的主键(并且有很多)都有以下错误:

IdentityIsNotForReplication已设置,并且在用作数据包的一部分时不受支持。

好的,很酷,但这是一个围绕架构的.NET抽象属性,据我所知,不是我可以从T-SQL改变的东西。我有点卡住了!

1 个答案:

答案 0 :(得分:5)

NOT FOR REPLICATION是一个可以应用于触发器,约束和标识列的属性,以防止复制它们。您可以将此属性设置为ON和OFF。

这是一段T-SQL代码,用于关闭所有表的NOT FOR REPLICATION:

EXEC sp_msforeachtable @command1 = '
declare @int int
set @int =object_id("?")
EXEC sys.sp_identitycolumnforreplication @int, 0'

(从http://blogs.msdn.com/b/repltalk/archive/2012/03/06/marking-identity-columns-as-not-for-replication-in-existing-publication.aspx添加)