0

我有一个 SQL Server DB,我想为单个表中的数据编写脚本。当我尝试这个时,我得到了 CyclicalForeignKeyException- 大概是因为某处有一个 FK 循环,这很好。这似乎是 SQL Server 的一个恼人的限制,就我而言,我使用的是 SQL Server 2008 R2。

我为此阅读的 3 条建议是:

  1. 摆脱循环。(不是一个选项,因为我不想修改这个数据库。)
  2. 暂时移除密钥并在之后重置它们。(出于同样的原因,这不是一个选项。)
  3. 编写数据库中所有对象的脚本。(这是可能的,但这个数据库很大,所以这不是一个理想的解决方案。)

我读到的另一个类似建议是备份数据库并恢复临时副本,删除 FK,然后获取数据。但同样由于数据库很大,这也不理想。

有人有另一种想法吗?

4

1 回答 1

3

哇-我不敢相信这有效...

我有一个类似版本的数据库,我试图在另一台机器上获取数据。这一次,当我运行该工具时,它起作用了。(我的意思是工具:任务->生成脚本...选择 1 个表,在高级中,将“脚本的数据类型”更改为“仅数据”。)

起初我认为这个其他版本的数据库一定没有循环键,但后来我意识到我使用的是 SQL Server Management Studio 2012 Express。然后我关闭了 SSMS,对域用户执行了 runas /netonly 并打开了 SSMS 2012 并连接到 SQL Server 2008 R2 DB。我尝试生成脚本并且它有效!

显然 SSMS 2012 修复了这个“问题”,您甚至可以将它用于其他数据库版本!

于 2013-02-21T23:12:09.613 回答