下面的代码来自我写的一篇关于使用 BCP 转储数据的博客文章。
这里有一些与你所拥有的不同的事情需要注意。
1 - 应该将路径提供给 bcp,因为它可能找不到。
2 - 我注意到您放置了 *.xlsx 扩展名,即使它是逗号分隔值 (csv) 格式。我建议使用 *.csv 扩展名。
3 - 此外,您需要在“-t”分隔符开关后提供一个字符。下面使用十六进制值。此处的示例使用逗号。
4 - 最后但并非最不重要的一点是,我看到您在文件名周围缺少“”。
请解决这些问题,然后重试。如果仍然没有骰子。使用我创建字符串的代码。使用打印命令。
尝试从命令行调用。如果它在那里不起作用,它将在 SQL Server 中不起作用。
祝你好运。
约翰·米纳
www.craftydba.com
PS:如果仍有问题,请发布命令执行的输出。
PPS:应该已经为现有数据库修复了架构。只是问你 DBA 的语法,除非你是偶然的 DBA?
-- BCP - Export query, pipe delimited format, trusted security, character format
DECLARE @bcp_cmd4 VARCHAR(1000);
DECLARE @exe_path4 VARCHAR(200) =
' cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ & ';
SET @bcp_cmd4 = @exe_path4 +
' BCP.EXE "SELECT FirstName, LastName FROM AdventureWorks2008R2.Sales.vSalesPerson" queryout ' +
' "C:\TEST\PEOPLE.TXT" -T -c -q -t0x7c -r\n';
PRINT @bcp_cmd4;
EXEC master..xp_cmdshell @bcp_cmd4;
GO