bcp实用程序输出一个空文件

时间:2012-12-06 14:11:32

标签: sql sql-server debugging sql-server-2005 bcp

我将使用bcp实用程序来调试存储过程,因此我想将一些数据导出到文件中。

我在我的SQL-Server 2005中运行了一个测试

DECLARE @SQL VARCHAR(8000)
SELECT @SQL = 'BCP "SELECT 1" QUERYOUT "D:\test.txt" -C -T'
EXEC MASTER..XP_CMDSHELL @SQL

我发现文件“D:\ test.txt”已创建,但为空 我做错了什么?

1 个答案:

答案 0 :(得分:1)

我运行了等效的命令:

BCP "SELECT 1" QUERYOUT "c:\junk\test.txt" -C -T

输出似乎是一个空文件,直到我用十六进制编辑器查看它。在十六进制编辑器中,我看到了这一点:01 00 00 00

所以它以整数格式保存数值1。我怀疑你想要第2行阅读:

SELECT @SQL = 'BCP "SELECT '1'" QUERYOUT "D:\test.txt" -C -T'

在这种情况下,你会在记事本中看到1。在十六进制编辑器中,您将获得:01 00 31

因为'1'是十六进制值为31的字符串长度1,所以字符为1的ASCII码。

修改

您还可以使用 -w 选项告诉bcp对所有输出使用unicode字符。可能是一个更好的选择,因为你说你将要调试。