我正在尝试执行一个非常简单的SQL select查询来存档,因为它位于SQL Express中托管的没有SSIS的第三方供应商数据库上。
我写了选择查询&经过测试,这在SSMS中运行完全没有任何问题。
我有一个噩梦,但试图让BCP在命令提示符下运行。我尝试从我的本地计算机上运行,在网络驱动器上运行,甚至将.bat文件添加到SQL服务器的tools / binn目录中,如同在线其他地方所建议的那样。
我现在得到的错误很快就会闪现,所以我必须在关闭cmd窗口之前抓一个快速截图,如下所示:
我还尝试从服务器上的计划任务运行,但这会在服务器错误日志中生成不同的错误代码。
这是更广泛项目的最后一部分。我对.bat文件没有多少经验,所以任何建议都会非常感激。
bat文件如下所示(用XX替换密码 - 请原谅长查询。我需要创建一个具有确切数量的部分的文件,以便导入第三方系统以便工作,这样可以轻松计算添加的数字字段)。
BCP "SET NOCOUNT ON; SELECT '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + [sender_reference] + '|' + '|' + '|' + '|' + (REPLACE(CONVERT(CHAR(15), manifest_dt, 103),' ',' - ')) + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + '|' + [airwaybill_num] + '|' + '|' + '|' + '|' + '|' + '|'FROM airwaybills_history WHERE manifest_dt between (SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE()))) and (GETDATE()) + '23:59:59''" QUERYOUT \\carrier\test-file\test.OUT -S CARRIER\DHLEASYSHIP -U xx -P xx -c
答案 0 :(得分:0)
我刚刚在我的测试平台上运行了以下内容而没有任何问题。创建了一个C:\Temp\queryout.bat
,其中包含以下内容(全部在一行上):
BCP "SELECT*FROM INFORMATION_SCHEMA.TABLES" QUERYOUT "C:\temp\inf_schema.out" -S my_server\my_instance -T -c -d my_database
它使用-T
,对您来说是-U xx -P yy
。还有my_...
,你知道如何处理这些。
这对你有用吗?如果是这样,你可以修改它以查看它是否适合你。如果没有,有什么错误?
此外,如果您希望能够真正看到错误,请从cmd.exe
运行此内容。