我一直在尝试获取大型和多重连接的 SELECT 语句的结果,并将查询结果作为 CVS 文件通过电子邮件发送。我有正确的查询和电子邮件,但我无法自动将结果导出为 CVS 文件。从我一直在阅读的内容来看,自动导出查询结果的最佳选择是一个名为“BCP”的工具。
我尝试在 Management Studio 中像这样使用 BCP:
USE FootPrint;
DECLARE @sql VARCHAR(2048);
DECLARE @dir VARCHAR(50);
SET @dir = 'C:\Users\bailey\Desktop';
SET @sql = 'bcp "SELECT TOP 10 * FROM datex_footprint.Shipments" queryout "' + @dir + '" -c -t, -T';
EXEC master..xp_cmdshell @sql;
FootPrint 是特定数据库的名称,而 datex_footprint 是模式。(这不是真正的查询,只是一个测试)。
当我运行它时,我得到的错误是:“SQLState=S0002, NativeError = 208”“错误 = [Microsoft][SQL Server Native Client 10.0][SQL Server] Invalid object name 'datex_footprint.Shipments'。”
我 100% 肯定 datex_footprint.Shipments 是我要测试的数据的正确模式\表访问。
有没有人看到我在尝试将此结果导出到 CSV 文件时遗漏了什么或做错了什么?不过,具体来说,我正在尝试自动化这个过程。我知道如何将结果导出到 CSV 文件中,但我想在 T-SQL 中完成,这样我就可以按时间自动生成文件。
任何帮助,将不胜感激!