当我运行以下代码将Sql查询输出到文件时,它可以正常工作:
exec xp_cmdshell 'bcp "SELECT top 5 * from NK.[dbo].[eclubCustomerDelta]" queryout c:\nk\contacts.txt -c -T'
但是我在代码前面的另一个变量中保存了我的查询:
SET @result = (SELECT @x,@y
FOR XML PATH('contacts'))
@x
和@y
本身是先前定义的变量(查询在运行时提供正确的输出)。这就是说,查询的类似输出似乎不起作用:
exec xp_cmdshell 'bcp "SELECT @result" queryout c:\nk\contacts.txt -c -T'
以下是我的输出的外观:
开始复制......
SQLState = 37000,NativeError = 137
错误= [Microsoft] [SQL Server的ODBC驱动程序13] [SQL Server]必须 声明标量变量“@result”。
SQLState = S1000,NativeError = 0
错误= [Microsoft] [SQL Server的ODBC驱动程序13]无法解析 列级排序规则
BCP复制失败