Sql server 仅Sql Server脚本数据:CyclicalForeignKeyException的变通方法?

Sql server 仅Sql Server脚本数据:CyclicalForeignKeyException的变通方法?,sql-server,Sql Server,我有一个SQL Server DB,我想从单个表中为其编写数据脚本。当我尝试这一点时,我得到了CyclicalForeignKeyException——大概是因为在某个地方有一个FK循环,这很好。这似乎是SQL Server的一个恼人的限制,在我的例子中,我使用的是SQL Server 2008 R2 我读过的3条建议是: 摆脱循环。(不是选项,因为我不想修改此数据库。) 暂时取下钥匙,然后重新设置。(出于同样的原因,这不是一个选项。) 为数据库中的所有对象编写脚本。(这是可能的,但该DB很大,

我有一个SQL Server DB,我想从单个表中为其编写数据脚本。当我尝试这一点时,我得到了CyclicalForeignKeyException——大概是因为在某个地方有一个FK循环,这很好。这似乎是SQL Server的一个恼人的限制,在我的例子中,我使用的是SQL Server 2008 R2

我读过的3条建议是:

  • 摆脱循环。(不是选项,因为我不想修改此数据库。)
  • 暂时取下钥匙,然后重新设置。(出于同样的原因,这不是一个选项。)
  • 为数据库中的所有对象编写脚本。(这是可能的,但该DB很大,因此不是理想的解决方案。)
  • 我读到的另一个类似建议是备份数据库并恢复临时副本,删除FK,然后获取数据。但由于DB很大,这也不理想


    有人有其他想法吗?

    哇-我不敢相信这会奏效

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

    起初,我认为DB的另一个版本一定没有循环键,但后来我意识到我使用的是SQL Server Management Studio 2012 Express。于是,我关闭了SSMS,只对域用户运行了runas/netonly,打开了SSMS 2012并连接到SQL Server 2008 R2 DB。我尝试生成脚本,结果成功了


    显然,SSMS 2012修复了这个“问题”,您甚至可以对其他DB版本使用它

    哇-我不敢相信这会奏效

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

    起初,我认为DB的另一个版本一定没有循环键,但后来我意识到我使用的是SQL Server Management Studio 2012 Express。于是,我关闭了SSMS,只对域用户运行了runas/netonly,打开了SSMS 2012并连接到SQL Server 2008 R2 DB。我尝试生成脚本,结果成功了


    显然,SSMS 2012修复了这个“问题”,您甚至可以对其他DB版本使用它

    您还可以将操作更改为
    NO action
    @AarolamaBluenk-这是对数据库进行更改(在我的情况下不可接受),还是仅用于运行脚本(可接受)?这将对数据库进行更改。你能用临时桌吗?我可以用临时桌。如何为临时表创建INSERT语句?请注意,无论我要为其编写数据脚本的表是否有周期,脚本工具似乎都存在周期性异常。我认为它检测到的是一个DB宽,它只是放弃了。您还可以将操作更改为
    无操作
    @AarolamaBluenk-这是对DB进行更改(在我的情况下不可接受),还是只是为了运行脚本(可接受)?这将对数据库进行更改。你能用临时桌吗?我可以用临时桌。如何为临时表创建INSERT语句?请注意,无论我要为其编写数据脚本的表是否有周期,脚本工具似乎都存在周期性异常。我认为它检测到一分贝宽,它只是放弃了。