gpt4 book ai didi

sql-server - 如何自动将sql查询结果保存到.csv文件

转载 作者:行者123 更新时间:2023-12-02 20:52:59 25 4
gpt4 key购买 nike

我正在尝试导出我的 sql 查询结果,我想在您执行查询时自动执行它。我已经看到使用 output to 的示例,我尝试使用它,但这会给我一个语法错误,因为示例 Select * From dbo.anyTable Output to 但是对我来说在我的查询中有一个 where and inner join 我在它后面有一个 ) a 我认为这是问题所在。我知道可以通过右键单击鼠标并将结果另存为来保存它,但这不是我理想中想要的,因为我想自动化我正在尝试做的整个系统。

例如,我想尝试对我的部分查询执行此操作:

Select top 1 a.NAME, COUNT(*) OVER() AS totalRows
From (Select de.NAME From dbo.DEPLOYMENT_ENVIRONMENT as de
Inner join dbo.DEPLOYMENT_RESULT as dr
on dr.ENVIRONMENT_ID = de.ENVIRONMENT_ID
Where @filecontent = de.ENVIRONMENT_ID) a
OUTPUT TO @myPath
FORMAT TEXT
QUOTE '"'
WITH COLUMN NAMES;

编辑我有以下查询,但它没有生成文件或出现任何错误,我做错了什么?

Set @OutputFilePath = 'C:\DeploymentPipelines'
Set @ExportSQL = 'EXEC master.dbo.xp_cmdshell ''bcp
"Select top 1 a.NAME, COUNT(*) OVER() AS totalRows
From (Select de.NAME From dbo.DEPLOYMENT_ENVIRONMENT as de
Inner join dbo.DEPLOYMENT_RESULT as dr
on dr.ENVIRONMENT_ID = de.ENVIRONMENT_ID
Where @filecontent = de.ENVIRONMENT_ID) a"
queryout "' + @OutputFilePath + '\results4.csv" -T -c -t -S DEV-BUILD01\SQLSERVER'''
Exec(@ExportSQL)

最佳答案

我有一些用于修改 .csv 文件的存储过程,我发现使用 bcp 是我在 TSQL 脚本中执行此操作的最佳方法。语法是这样的(取 self 的一个实例;

DECLARE @OutputFilePath nvarchar(max); SET @OutputFilePath = 'C:\Users\VirtualMachine1\Desktop\MasterFullOutput\Phase03'

DECLARE @ExportSQL nvarchar(max); SET @ExportSQL = N'EXEC master.dbo.xp_cmdshell ''bcp "SELECT TextData FROM DataConversionDB.dbo.DataScripts ORDER BY RowNumber" queryout "' + @OutputFilePath + '\OutputData.csv" -T -c -t -S WIN-SIITTJOB7OV'''

EXEC(@ExportSQL)

您必须确保您的 SQL Server 服务登录名可以访问您输出到的文件路径(不是您自己的权限,SQL Server NT 服务的权限)。

这里有一些关于 bcp 命令的额外阅读 Material ;

https://msdn.microsoft.com/en-GB/library/aa337544.aspx

https://www.simple-talk.com/sql/database-administration/working-with-the-bcp-command-line-utility/

Using bcp utility to export SQL queries to a text file

为了缩小范围,试一下这个例子,看看会发生什么;

DECLARE @ExportSQL nvarchar(max);

SET @ExportSQL = 'EXEC ..xp_cmdshell ''bcp "SELECT TOP 1 FROM sys.objects " queryout "C:\DeploymentPipelines\results4.csv" -T -c -t -S DEV-BUILD01\SQLSERVER'''

Exec(@ExportSQL)

关于sql-server - 如何自动将sql查询结果保存到.csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com