Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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
Sql server 将一个MS SQL数据库迁移到另一个数据库_Sql Server - Fatal编程技术网

Sql server 将一个MS SQL数据库迁移到另一个数据库

Sql server 将一个MS SQL数据库迁移到另一个数据库,sql-server,Sql Server,您能否建议以编程方式(而不是通过UI)生成脚本以将特定表(架构、约束、索引)迁移到单独服务器上的另一个数据库的最简单方法 我了解复制、SSI、生成脚本功能、备份还原方法和SQL导入/导出窗口。然而,所有这些方法至少需要某种UI交互,或者不允许复制约束,或者不允许只迁移部分数据 我将在其中放置数据的数据库将与主数据库同步,因此可以删除其中的现有数据,并使用主数据库中的架构和数据进行覆盖。来自注释:我只需要迁移部分数据库:特定表及其外键/主键约束、索引和这些表中的数据 据我所知,我希望这将对你有所帮

您能否建议以编程方式(而不是通过UI)生成脚本以将特定表(架构、约束、索引)迁移到单独服务器上的另一个数据库的最简单方法

我了解复制、SSI、生成脚本功能、备份还原方法和SQL导入/导出窗口。然而,所有这些方法至少需要某种UI交互,或者不允许复制约束,或者不允许只迁移部分数据

我将在其中放置数据的数据库将与主数据库同步,因此可以删除其中的现有数据,并使用主数据库中的架构和数据进行覆盖。

来自注释:我只需要迁移部分数据库:特定表及其外键/主键约束、索引和这些表中的数据

据我所知,我希望这将对你有所帮助

单击下一步

选择你的位置 USE DATABASE:FALSE将帮助您在新服务器中创建的新数据库中执行脚本,它基本上不会生成Create DB脚本

仔细阅读表格视图/选项,无论您需要什么,请将其变为现实


单击您所在位置的下一个拾取脚本文件并在新服务器上运行

有太多选项,很难确定您实际要查找的内容。您列出的一些选项也不一定需要GUI。即备份/恢复。另一个我想放弃的选择是PowerShell和SMO。看这里。还原备份是我们目前使用的,但现在我们需要使用不同版本的服务器(复制副本上的express),并且只需要迁移部分数据,因为express的大小有限。生成备份文件还原服务器,然后重命名DBname@tinka,我不确定我是否理解你的想法。备份和恢复本身没有问题。问题是我只想将部分数据传递给复制副本。备份还原仅允许进行完整备份。我不能仅仅为了删除不必要的数据并再次备份以传递副本而在服务器上恢复另一个巨大的数据库。这非常耗费资源。@ninjaboy然后我们可以使用
仅模式生成脚本,这是唯一的脚本,没有其他东西可以运行新服务器是的,如果我能做这个练习的话,这可能会有所帮助。当我找到一个名为SMO的东西时,它可能会有潜在的帮助,但它对安装的sql版本有严格的依赖性,这在我的案例中引入了复杂性,因为我们使用2008和2008R2服务器,这意味着我需要创建单独的构建对于不同的DBversions@ninjaboy每个脚本生成器都提供了向后兼容的功能,在这个答案的第4张图片中,服务器版本的脚本可以选择从2012年到2005年,但是您的问题已经解决了,非常好:)很好。由于sql2000不支持smo,因此尚未解决此问题。2000使用的机制称为DMO,这意味着我需要使用不同的方法输入相同功能的两个版本。所以我还是looking@ninjaboy对不起,我刚才也检查了服务器版本的脚本