将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:
开始复制...
NULL
已复制了 100 行。
数据包的大小(字节): 4096
时钟时间(毫秒): 共 1
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:
EXEC master..xp_cmdshell 'bcp test.dbo.SP_FL_AnnualSellCustomInfo out c:\temp1.xls -c -q -S"CENTER-XXB-092\SQLEXPRESS" -U"sa" -P"111111"'
失败:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]无法打开 BCP 主数据文件
NULL
原因:C盘是只读了,没有写权限也会报此错误.
修改为D盘
EXEC master..xp_cmdshell 'bcp test.dbo.SP_FL_AnnualSellCustomInfo out d:\temp1.xls -c -q -S"CENTER-XXB-092\SQLEXPRESS" -U"sa" -P"111111"'
成功:
开始复制...
NULL
已复制了 100 行。
数据包的大小(字节): 4096
时钟时间(毫秒): 共 1
NULL
将由三部分组成的整个表名或视图名用英文双引号 ("") 括起来,out 改成 queryout。
EXEC master..xp_cmdshell
'bcp "select top 10 * from test.dbo.SP_FL_AnnualSellCustomInfo" queryout d:\temp1.xls -c -q -S"CENTER-XXB-092\SQLEXPRESS" -U"sa" -P"111111"'