题 将Microsoft SQL Server数据库转储到SQL脚本


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

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

我见过 http://vyaskn.tripod.com/code.htm#inserts,但我理想地想要重建一切(不仅仅是数据),只需一步就可以生成最终的脚本。


116
2017-08-25 01:47




@Matt是的,它不会导出数据。这就是我提到你应该将它与你建议的脚本结合起来的原因。但是,此方法会以正确的顺序构建脚本。 - Julio César
实际上,在Mangement Studio 2008中,您只需打开“导出数据”选项,该脚本将包含模式和插入语句。 - user24161
有关: 如何使用sqlcmd从SQL Server导出数据为CSV格式? - kenorb


答案:


在SQL Server Management Studio中,右键单击数据库,然后选择“任务/生成脚本”。按照向导的说明,您将获得一个脚本,该脚本根据外键以正确的顺序重新创建数据结构。在标题为“设置脚本选项”的向导步骤中,选择“高级”并将“要编写的脚本数据类型”选项修改为“架构和数据”

提示:在最后一步选择“脚本到新的查询窗口”,它的工作速度会快得多。


102
2017-08-25 01:59



只需记住进入高级选项并告诉它不仅要编写模式,还要编写数据。 - RomanSt
@romkyns值得所有的选票! “脚本数据类型”是确切的选项名称。您需要选择“架构和数据”。 - solidau
从SSMS生成的脚本的主要问题是它们没有正确排序以考虑依赖性。对于可以手动执行此操作的小型数据库,这不是问题,但是当数据库超过50个对象时,这肯定是个问题。到目前为止我们成功使用了 ApexSQL脚本 为了这。它是一种高级工具,但您可以在试用模式下使用它来完成工作。我认为 红门 也有类似的工具。 - David Smithers


尝试 Sql Server数据库发布向导。您可能需要重新排序脚本以使其在一次性运行中因为依赖性而运行,但它将包括您的架构和数据。

如果您没有安装2005 SQL XMO对象,则运行时会出错 魔法师。您将需要Microsoft SQL Server 2005管理对象集合


34
2017-08-25 01:57



实际上,您不需要重新排序脚本,因为它会删除所有约束,创建模式,插入数据,最后重新创建约束。 - Daniel Silveira
真棒,非常整洁 - Beep beep
这是一个很棒的工具,虽然只支持SQL Server 2015. 2008年及以后怎么样? - Nam G VU


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


11
2018-02-10 16:40



上一个稳定版本不适用于存储过程。 - VMAtm
最新版本可以从中下载 download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html - Raynet


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


7
2017-09-22 06:50





尝试 DBSourceTools。它旨在编写源数据库脚本,并重新部署到目标数据库。它脚本架构和数据。


6
2018-03-08 03:50





推荐的解决方案仅适用于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-存储过程函数的触发器-表的视图约束和 - 全其他数据库的对象/


5
2018-05-29 22:58



meta.stackexchange.com/questions/8231/... - jscott


SQL Server数据库发布向导似乎确实是最好的方法。这个问题是它似乎不能在Windows 7上运行。我不得不使用我的旧计算机来使用它。从积极的方面来说,它适用于较旧的SQL Server版本,如2000。

对于较新的SQL版本和操作系统,此软件可能值得研究: http://sqlbackupandftp.com/


2
2018-04-27 19:32





Ombelt是一个很好的导出MS SQL服务器数据库的工具。 www.ombelt.com

很像其他DB的转储设施。

适合我。


0
2017-08-25 05:54





检查Microsoft SQL Server架构转储项目(mssql-schema-dump GitHub上的工具)。

用法: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

出口支持:

  • DB:架构,用户类型,用户表类型,触发器,全文目录, 全文停止列表,存储过程,函数
  • DB.Tables:架构,触发器,索引,DRI,统计
  • DB.Views:架构,触发器,索引,DRI,统计

0
2018-02-08 17:44