我有一个 SQL Server 数据库,它是复制的最终结果。换句话说,这只是副本。我想使用 Management Studio 或作为 BACPAC 文件将此数据库迁移到 SQL Azure。尝试这样做时,我得到了我期望的东西,例如需要聚集索引,但我坚持的事情是每个表(并且有很多表)上的主键都有以下错误:
IdentityIsNotForReplication 已设置,并且在用作数据包的一部分时不受支持。
好吧,很酷,但这是围绕模式的 .NET 抽象的属性,据我所知,我无法从 T-SQL 中更改它。我有点卡住了!
最佳答案
NOT FOR REPLICATION 是一个可应用于触发器、约束和标识列以防止复制它们的属性。您可以将此属性设置为“开”和“关”。
下面是一段用于关闭所有表的 NOT FOR REPLICATION 的 T-SQL 代码:
EXEC sp_msforeachtable @command1 = '
declare @int int
set @int =object_id("?")
EXEC sys.sp_identitycolumnforreplication @int, 0'
关于sql-server - SQL Server 数据库主键上的 IdentityIsNotForReplication 阻止迁移到 SQL Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22876055/