有什么方法可以将Microsoft SQL Server数据库导出到sql脚本吗?

我正在寻找某种与mysqldump相似的行为,使用一个数据库名称,并生成一个将重新创建所有脚本的脚本表,存储过程,重新插入所有数据等。

我已经看过http://vyaskn.tripod.com/code.htm#inserts,但是理想情况下,我想要一些东西来重新创建所有内容(而不是只需一个数据即可完成最终脚本。

评论

@Matt是的,它不会导出数据。这就是为什么我提到您应该将其与建议的脚本结合使用的原因。尽管此方法确实以正确的顺序构建了脚本。

实际上,在Management Studio 2008中,您只需要打开“导出数据”选项,该脚本将同时包含架构和插入语句。

相关:如何使用sqlcmd从SQL Server以CSV格式导出数据?

@MattSheppard请考虑接受答案之一

#1 楼

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

提示:在最后一步中,选择“脚本到新的查询窗口”,这样可以更快地运行。

评论


只要记住要进入高级选项,并告诉它不仅对模式进行脚本化,还可以对数据进行脚本化。

–RomanSt
2012年8月22日14:50

@romkyns值得所有投票! “脚本的数据类型”是确切的选项名称。您将要选择“架构和数据”。

– solidau
13年1月16日在20:17

从SSMS生成的脚本的主要问题是,它们的排序不正确,无法将依赖关系考虑在内。对于小型数据库而言,这不是问题,您可以手动执行此操作,但是当数据库超过50个对象时,绝对是问题。到目前为止,我们已经成功地使用ApexSQL Script了。这是一个高级工具,但您可以在试用模式下使用它来完成工作。我认为Red Gate也有类似的工具。

–大卫·史密瑟斯(David Smithers)
13年6月21日在8:12

#2 楼

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

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

评论


实际上,您不需要重新排序脚本,因为它会删除所有约束,创建架构,插入数据,最后重新创建约束。

–丹尼尔·西尔维拉(Daniel Silveira)
09年5月8日在21:31

太好了,很整洁

–哔哔声
2010年9月8日下午4:16

尽管仅支持SQL Server 2015,这是一个很棒的工具。2008年及之后的版本呢?

– Nam G VU
15年8月20日在0:55

#3 楼

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

评论


最后一个稳定版本不适用于存储过程。

– VMAtm
2012年7月26日上午7:00

可以从download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html下载最新版本

– Raynet
2015年10月21日在12:52

#4 楼

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

#5 楼

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

#6 楼

推荐的解决方案仅适用于sql 2000和2005。如果要在SQL 2008上执行此操作,则可以使用SQL 2008进行此操作,而无需任何其他插件。右键单击数据库,然后选择“任务->生成脚本...”。选择数据库以及要备份的内容。单击下一步,然后将“脚本数据”设置为true。

位于链接的其他文档:

http://blog.sqlauthority.com/2011/05/07/sql服务器2008-2008-r2-创建脚本以复制数据库架构,然后将所有对象数据架构存储的过程功能触发表视图约束和所有-other-database-objects /

评论


meta.stackexchange.com/questions/8231/…

–jscott
2012年5月29日23:14



#7 楼

SQL Server数据库发布向导确实确实是最好的方法。问题是它似乎无法在Windows 7上运行。我必须使用旧计算机来使用它。从积极的方面来看,它可以与SQL Server的较早版本(例如2000)一起使用。对于新的SQL版本和操作系统,该软件可能值得研究:http://sqlbackupandftp.com/

#8 楼

Ombelt是导出MS SQL Server数据库文件的好工具。
www.ombelt.com

与其他DB的转储工具非常相似。

对我有用。 br />

#9 楼

检查Microsoft SQL Server Schema Dump项目(位于GitHub的mssql-schema-dump工具)。


用法: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,统计信息