BCP 语法问题 (pt2)
BCP Syntax Issues (pt2)
我正在尝试执行一个非常简单的 SQL select 查询文件,因为它位于 SQL Express 中托管的第 3 方供应商数据库上,没有 SSIS。
我已经编写了 select 查询并在 SSMS 中测试了这个 运行s,没有任何问题。
我做了一个噩梦,但是我试图在命令提示符下让 BCP 达到 运行。我已经尝试从本地计算机 运行ning,在网络驱动器上 运行ning,甚至按照其他地方的建议将 .bat 文件添加到 SQL 服务器的 tools/binn 目录线.
我现在遇到的错误很快就会出现,所以我必须在它关闭 cmd window 之前抓取一张快速截图,如下所示:
我也尝试从服务器上的计划任务中 运行ning,但这在服务器错误日志中产生了不同的错误代码。
这是一个更广泛的项目中的最后一篇文章,我对 .bat 文件没有太多经验,因此非常感谢任何建议。
bat 文件如下所示(密码已替换为 XX - 请原谅冗长的查询。我需要创建一个文件,其中包含确切数量的部分,以便导入第 3 方系统才能正常工作,因此将数字添加到轻松计算字段)。
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
我只是运行以下在我的测试平台上没有问题。创建了一个包含以下内容的 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_...
,你知道如何处理这些。
这对你有用吗?如果是这样,您可以 mod 看看它是否适合您。如果不是,错误是什么?
此外,如果您想真正看到错误,运行 来自 cmd.exe
。
我正在尝试执行一个非常简单的 SQL select 查询文件,因为它位于 SQL Express 中托管的第 3 方供应商数据库上,没有 SSIS。
我已经编写了 select 查询并在 SSMS 中测试了这个 运行s,没有任何问题。
我做了一个噩梦,但是我试图在命令提示符下让 BCP 达到 运行。我已经尝试从本地计算机 运行ning,在网络驱动器上 运行ning,甚至按照其他地方的建议将 .bat 文件添加到 SQL 服务器的 tools/binn 目录线.
我现在遇到的错误很快就会出现,所以我必须在它关闭 cmd window 之前抓取一张快速截图,如下所示:
我也尝试从服务器上的计划任务中 运行ning,但这在服务器错误日志中产生了不同的错误代码。
这是一个更广泛的项目中的最后一篇文章,我对 .bat 文件没有太多经验,因此非常感谢任何建议。
bat 文件如下所示(密码已替换为 XX - 请原谅冗长的查询。我需要创建一个文件,其中包含确切数量的部分,以便导入第 3 方系统才能正常工作,因此将数字添加到轻松计算字段)。
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
我只是运行以下在我的测试平台上没有问题。创建了一个包含以下内容的 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_...
,你知道如何处理这些。
这对你有用吗?如果是这样,您可以 mod 看看它是否适合您。如果不是,错误是什么?
此外,如果您想真正看到错误,运行 来自 cmd.exe
。