SQLState = 37000,NativeError = 137:必须声明标量变量“@result”

时间:2017-02-01 13:53:13

标签: sql-server tsql xp-cmdshell

当我运行以下代码将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复制失败

0 个答案:

没有答案