全部,我正在尝试编写一个可以每天从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'.
如果有人有任何指示,我们将不胜感激。
答案 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查询窗口运行它。