我正在尝试导出我的SQL查询结果,当您执行查询时,我想要自动。我已经看到了使用输出到的示例,我尝试使用但是这会给我一个语法错误,例如Select * From dbo.anyTable Output to
,但对我来说,我有哪里和内在在我的查询中加入我之后有一个)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)
答案 0 :(得分:2)
我有一些存储过程用于修改.csv文件,我发现使用bcp是我在TSQL脚本中执行此操作的最佳方法。语法是这样的(取自我的一个实例;
FillDataSet(ds)
您必须确保您的SQL Server服务登录有权访问您输出的文件路径(不是您自己的权限,SQL Server NT服务的权限)。
这是围绕bcp命令的一些额外阅读;
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 @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)