BCP语法问题

时间:2016-11-14 13:35:06

标签: sql-server tsql bcp

全部,我正在尝试编写一个可以每天从SQL Server 2008实例上的批处理文件运行的查询。

我以前从未使用过BCP,但在网上看了一些例子之后,我试图创建一个真正的基本查询来测试过程&在我将选择查询扩展到所需数据集之前,机器上的权限。

我正在使用:

 bcp    
"SELECT manifest_dt from EasyShip_050300.airwaybills"
queryout C:\Shares\DHL-EXPORT-TEST\file.txt -SGRENSON-CARRIER\DHLEASYSHIP -c -T

它几乎可以匹配我在网上找到的每个例子,但每次执行此查询时都会收到错误:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near 'queryout'.

如果有人有任何指示,我们将不胜感激。

3 个答案:

答案 0 :(得分:1)

我相信你也应该在语音标记中输出文件路径,就像这样;

 bcp    
"SELECT manifest_dt from EasyShip_050300.airwaybills"
queryout "C:\Shares\DHL-EXPORT-TEST\file.txt" -S GRENSON-CARRIER\DHLEASYSHIP -c -T

此外,在-S服务器声明后放置一个空格以查看是否有帮助。

答案 1 :(得分:1)

让我回答两个我知道在我的环境中工作的通用命令(使用可信连接)。看看它们是否也适用于你,并从那里开始工作:

$ pip install pydot-ng

如果它们有效,-- default row separator, column separator DECLARE @stmt VARCHAR(8000); SET @stmt= 'BCP '+ '"SELECT*FROM INFORMATION_SCHEMA.TABLES" '+ 'QUERYOUT "C:\Temp\information_schema.txt" '+ '-c -T -S ' + @@SERVERNAME + ' -d ' + DB_NAME(); EXEC master.sys.xp_cmdshell @stmt; -- comma separated: DECLARE @stmt_c VARCHAR(8000); SET @stmt_c= 'BCP '+ '"SELECT*FROM '+QUOTENAME(DB_NAME())+'.INFORMATION_SCHEMA.TABLES" '+ 'QUERYOUT "C:\Temp\information_schema.csv" '+ '-c -t, -T -S ' + @@SERVERNAME; EXEC master.sys.xp_cmdshell @stmt_c; 并看看它们是如何形成的。然后看看你的命令有什么不同。

答案 2 :(得分:0)

BCP是一个命令行实用程序,因此您需要从命令提示符而不是SQL查询窗口运行它。