Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 生成脚本-仅数据-发现循环依赖项错误_Ssis_Sql Server 2012 - Fatal编程技术网

Ssis 生成脚本-仅数据-发现循环依赖项错误

Ssis 生成脚本-仅数据-发现循环依赖项错误,ssis,sql-server-2012,Ssis,Sql Server 2012,我试图生成一个数据库中所有数据的脚本,这样我就可以将数据移到另一台服务器上相同的数据库中。在SQL Server 2012中,我右键单击源数据库 任务>生成脚本>为整个数据库和所有数据库对象编写脚本>高级>要编写脚本的数据类型:仅数据 这给了我一个关于循环依赖的错误。如果我将数据类型更改为script,并将schema和data更改为,则生成的数据很好。如何修复此问题以仅处理数据 获取列表的操作结果 从MyDatabase中删除对象失败 详细报告: Microsoft.SqlServer.Man

我试图生成一个数据库中所有数据的脚本,这样我就可以将数据移到另一台服务器上相同的数据库中。在SQL Server 2012中,我右键单击源数据库

任务>生成脚本>为整个数据库和所有数据库对象编写脚本>高级>要编写脚本的数据类型:仅数据

这给了我一个关于循环依赖的错误。如果我将数据类型更改为script,并将schema和data更改为,则生成的数据很好。如何修复此问题以仅处理数据

获取列表的操作结果 从MyDatabase中删除对象失败

详细报告:

Microsoft.SqlServer.Management.SqlScriptPublish.SqlScriptPublishException: 编写对象脚本时出错。--> Microsoft.SqlServer.Management.Smo.Smo异常:循环依赖项 建立在 Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32 num,Dictionary
2 Dictionary,List
1 sortedList,HashSet
1已访问,
哈希集
1当前值)位于 Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32 num,Dictionary
2 Dictionary,List
1 sortedList,HashSet
1已访问,
哈希集
1当前值)位于 Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32 num,Dictionary
2 Dictionary,List
1 sortedList,HashSet
1已访问,
哈希集
1当前值)位于 Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32 num,Dictionary
2 Dictionary,List
1 sortedList,HashSet
1已访问,
哈希集
1当前值)位于 Microsoft.SqlServer.Management.Smo.SMODependencyOrder.SortDictionary(字典
2
(字典)在
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.SortDataSet(数据集
ds)在
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.SortDataSet(列表
1 objectList,Dictionary
2 idDictionary,数据集ds)位于
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.ExecuteQueryUsingEntertable(列表
1 objectList,List
1列表,字符串查询)位于
Microsoft.SqlServer.Management.Smo.SmoDependencyOrderer.ResolveTableOnlyDependencies()
在
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.ResolveDependencies()
在
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.Order(IEnumerable
1 骨灰盒)在 Microsoft.SqlServer.Management.Smo.ScriptMaker.DiscoveryOrderScript(IEnumerable
1
骨灰盒)在
Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptWorker(列表
1 urns,ISmoScriptWriter)在 Microsoft.SqlServer.Management.Smo.ScriptMaker.Script(Urn[]urns, ISmoScriptWriter)在 Microsoft.SqlServer.Management.SqlScriptPublish.SqlScriptGenerator.DoScript(ScriptOutputOptions outputOptions)---内部异常堆栈跟踪的结束----at Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker\u DoWork(对象 发送人,地址为 System.ComponentModel.BackgroundWorker.OnDowWork(DowWorkEventTargets e)位于 System.ComponentModel.BackgroundWorker.WorkerThreadStart(对象 (论据)


我也有同样的错误。。。请看我的回答:

然后,我一时兴起,知道我以前已经成功地编写了这个数据库的脚本,我使用Sql Server Management 2008 R2连接到Sql Server 2012实例,并且我能够生成没有错误的脚本

请注意,我只编写数据,并且必须允许它编写所有数据库对象的脚本。我试图只选择某些表,但这会产生一些我不愿意跟踪的其他错误,所以我只做了整个事情


我也有同样的问题,没有安装SSMS 2008 R2来执行Matt的建议。因此,我所做的是更改高级设置,让它创建模式和数据,并将其设置为检查对象是否已经存在。我将大多数其他内容设置为false(即主键、唯一键等),以便sql文件中的所有内容都是基本的CREATETABLE语句和insert语句。因为它在创建表之前检查表是否已经存在,所以如果表已经存在,则可以运行脚本。因此,它的行为就像是insert语句一样。如果要为多个选定的表创建一个sql文件,它会将所有表创建块放在脚本的顶部,因此如果需要,在创建文件后可以很容易地删除所有这些块。

对我有效的一个可能解决方案是将脚本生成为“模式和数据”,而不是“仅数据”。然后我可以删除所有不必要的模式内容,只留下数据。
希望这也能有所帮助。

引用链接已失效-(有解决方案吗?请检查博客文章中的链接,似乎trailmax就是指此链接。验证了在SQL Server 2016上使用SSMS 2008 R2仍然有效,以绕过循环依赖项异常(运行的是仅模式脚本)。好的,我修复了我帖子中指向MSDN博客帖子的链接,该帖子中有SQL脚本,您可以运行该脚本来查找循环引用。来自@azat的答案更简单:“将脚本生成为“模式和数据”,而不是“仅数据”。更简单,因此对我来说更好