注意:如果可以通过备份恢复或者link server等方式批量导入,效率会更高,不太建议用导出为sql的方法,但可以作为了解。

SqlServer将表导出为SQL语句_sql

选择要导出的对象

SqlServer将表导出为SQL语句_sqlserver_02

选择文件保存路径(也可以保存到剪切板或者新窗口),如果有多个对象,可以放一个文件也可以放多个文件

SqlServer将表导出为SQL语句_SSMS_03

选择Advanced,可以设置各种属性,重要的是要把导出类型改为“schema and data”

SqlServer将表导出为SQL语句_SSMS_04

SqlServer将表导出为SQL语句_数据库_05

SqlServer将表导出为SQL语句_文件大小_06

查看导出的文件

SqlServer将表导出为SQL语句_数据库_07

如果表小(50万行内),这个方法还行。对于大表,导出很慢,生成的文件也很大,基本就不太可用。

生产环境中导出20~30万行的表,文件大小在200~300M,使用SSMS基本无法执行,需要使用sqlcmd。

sqlcmd -U myuser -P password -S hostname -i myfile.sql -d dbname

SqlServer将表导出为SQL语句_文件大小_08

另外由于SqlServer是自动提交的,如果有30万数据,每执行一行就提交速度会非常慢(测试约20分钟)。需要修改下导出的文件,改为批量提交。

SqlServer将表导出为SQL语句_sql_09

测试20万行数据,改为批量提交后一分钟导入完