一、sqlcmd

  sqlcmd可用于导入.sql文件。如果数据量太大,使用GO命令分步执行。同样的数据量,据walker估计:sqlcmd效率比bcp至少差一个数量级。

1、基本命令。

sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DatabaseName -i filename.sql

  filename.sql里面是多行标准sql语句。

示例:

sqlcmd -S192.168.0.169 -U"sa" -P"saPwd" -d"DatabaseName" -i D:\tmp\t.sql

  官方文档中提到:当前(2015.8.27),sqlcmd 在命令行选项和值之间不需要空格。但是,在将来的版本中,在命令行选项和值之间可能需要空格。

官方文档:sqlcmd 实用工具


二、bcp

  不能导入.sql文件。可导入txt文件,txt文件内容为多行裸数据,字段之间用TAB分隔,行分隔符需为\r\n

示例如下:

bcp db_name.dbo.tbl_name in D:\tmp\bcp.txt -c -T    //[-T 可信连接]  
BCP [db_name].[dbo].[tbl_name] in D:\tmp\bcp.txt -c -S192.168.0.165 -U"sa" -P"sa_pwd"


相关阅读:

1、官方文档:bcp 实用工具

2、SQL Server BCP使用小结

3、SQL Server 使用bcp进行大数据量导出导入

4、SQLServer BCP 导入导出数据

5、MySQL的类似命令:MySQL5 LOAD DATA 深入研究



三、osql

官方文档(osql 实用工具)里面提到:在 SQL Server 的未来版本中将删除此功能。请避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。请改用 sqlcmd。


*** walker ***