如何将 Microsoft SQL Server 数据库转储到 SQL 脚本?

Mat*_*ard 139 sql migration sql-server

有没有办法将 Microsoft SQL Server 数据库导出到 sql 脚本?

我正在寻找与 mysqldump 行为类似的东西,取一个数据库名称,并生成一个脚本,该脚本将重新创建所有表、存储过程、重新插入所有数据等。

我已经看过http://vyaskn.tripod.com/code.htm#inserts,但我理想情况下想要一些东西来重新创建所有内容(不仅仅是数据),这些内容可以在一个步骤中生成最终脚本。

小智 123

在 SQL Server Management Studio 中,右键单击您的数据库并选择任务/生成脚本。按照向导操作,您将获得一个脚本,该脚本根据外键以正确的顺序重新创建数据结构。在标题为“Set Scripting Options”的向导步骤中,选择“Advanced”并将“Types of data to script”选项修改为“Schema and data”

提示:在最后一步选择“Script to a New Query Window”,这样会运行得更快。

  • 请记住进入高级选项并告诉它不仅为架构编写脚本,还为数据编写脚本。 (20认同)
  • @romkyns 值得所有的赞成票!“要编写脚本的数据类型”是确切的选项名称。您需要选择“架构和数据”。 (3认同)
  • 从 SSMS 生成的脚本的主要问题是它们没有正确排序以考虑依赖关系。对于可以手动执行此操作的小型数据库来说,这不是问题,但是当数据库超过 50 个对象时,这绝对是一个问题。到目前为止,我们成功地为此使用了 [ApexSQL 脚本](http://www.apexsql.com/sql_tools_script.aspx)。这是一个高级工具,但您可以在试用模式下使用它来完成工作。我觉得[Red Gate](http://www.red-gate.com/) 也有类似的工具。 (2认同)

Rob*_*len 34

尝试Sql Server 数据库发布向导。由于依赖关系,您可能需要重新排序脚本以使其一次性运行,但它将包含您的架构和数据。

如果您尚未安装 2005 SQL XMO 对象,则在运行该向导时会出现错误。您需要 Microsoft SQL Server 2005 管理对象集合

  • 实际上,您不需要对脚本重新排序,因为它会删除所有约束、创建模式、插入数据,最后重新创建约束。 (5认同)

Mar*_*ent 12

我发现SQL Dumper非常有用。它是免费的,所以你可以试一试。它允许您选择数据库表和列、视图甚至自定义查询的结果作为 SQL 插入语句。


小智 7

没有找到合适的工具,我决定创建自己的工具:一个 sqlserverdump 命令行实用程序。在http://sqlserverdump.codeplex.com/上查看。它将在一个步骤中重新创建架构和数据。


小智 6

试试DBSourceTools。它旨在编写源数据库的脚本,然后重新部署到目标数据库。它编写模式和数据的脚本。


tze*_*erb 6

推荐的解决方案仅适用于 sql 2000 和 2005。如果您希望在 SQL 2008 上执行此操作,

您可以使用 SQL 2008 做到这一点,无需任何其他插件。右键单击数据库并选择“任务-> 生成脚本...”。选择数据库和要备份的内容。单击下一步并将“脚本数据”设置为 true。

链接中的更多文档:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-存储过程函数触发器表视图约束和所有其他数据库对象/