1

我想将数据从表传输到文本文件。我正在尝试使用 bcp 实用程序和 xp_cmdshell。但导出不成功。

如果我在下面执行查询它的工作正常。

EXEC xp_cmdshell 'bcp "SELECT CONTRACT_NUMBER,BODY,SYNOPSIS,2,0 FROM AMPWEBAPP_TEST_DB..TM_DONOT_PUBLISH_TEXT_GRAPHIC_COMMENTS WHERE SYNOPSIS IS NOT NULL AND BODY IS NOT NULL" queryout "C:\bcptest.txt" -c -T -S'  

但我想在 where 条件下附加一个值。以下是我的查询,它不起作用。

DECLARE @ACC VARCHAR(MAX)
SET @ACC='12121'

EXEC xp_cmdshell 'bcp "SELECT CONTRACT_NUMBER,BODY,SYNOPSIS,2,0 FROM AMPWEBAPP_TEST_DB..TM_DONOT_PUBLISH_TEXT_GRAPHIC_COMMENTS WHERE SYNOPSIS IS NOT NULL AND BODY IS NOT NULL AND ACCOUNT_NUMBER='+@ACC+'" queryout "C:\bcptest.txt" -c -T -S'
4

1 回答 1

0

我猜 ACCOUNT_NUMBERvarchar在这种情况下是一个字段,你应该12121使用配额,因为它是一个varchar常量,所以:

EXEC xp_cmdshell 'bcp "SELECT CONTRACT_NUMBER,BODY,SYNOPSIS,2,0 FROM AMPWEBAPP_TEST_DB..TM_DONOT_PUBLISH_TEXT_GRAPHIC_COMMENTS WHERE SYNOPSIS IS NOT NULL AND BODY IS NOT NULL AND ACCOUNT_NUMBER='''+@ACC+'''" queryout "C:\bcptest.txt" -c -T -S'
于 2013-02-05T14:03:50.090 回答