Ssis 生成脚本-仅数据-发现循环依赖项错误
我试图生成一个数据库中所有数据的脚本,这样我就可以将数据移到另一台服务器上相同的数据库中。在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,DictionarySsis 生成脚本-仅数据-发现循环依赖项错误,ssis,sql-server-2012,Ssis,Sql Server 2012,我试图生成一个数据库中所有数据的脚本,这样我就可以将数据移到另一台服务器上相同的数据库中。在SQL Server 2012中,我右键单击源数据库 任务>生成脚本>为整个数据库和所有数据库对象编写脚本>高级>要编写脚本的数据类型:仅数据 这给了我一个关于循环依赖的错误。如果我将数据类型更改为script,并将schema和data更改为,则生成的数据很好。如何修复此问题以仅处理数据 获取列表的操作结果 从MyDatabase中删除对象失败 详细报告: Microsoft.SqlServer.Man
2 Dictionary,List
1 sortedList,HashSet1已访问,
哈希集
1当前值)位于
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32
num,Dictionary2 Dictionary,List
1 sortedList,HashSet1已访问,
哈希集
1当前值)位于
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32
num,Dictionary2 Dictionary,List
1 sortedList,HashSet1已访问,
哈希集
1当前值)位于
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.DependencyGraphTraversal(Int32
num,Dictionary2 Dictionary,List
1 sortedList,HashSet1已访问,
哈希集
1当前值)位于
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.SortDictionary(字典2
(字典)在
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.SortDataSet(数据集
ds)在
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.SortDataSet(列表
1
objectList,Dictionary2 idDictionary,数据集ds)位于
Microsoft.SqlServer.Management.Smo.SMODependencyOrder.ExecuteQueryUsingEntertable(列表
1
objectList,List1列表,字符串查询)位于
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(IEnumerable1
骨灰盒)在
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的答案更简单:“将脚本生成为“模式和数据”,而不是“仅数据”。更简单,因此对我来说更好