Sqlcmd 使用 SQL 服务器存储过程将数据导出到 csv
Sqlcmd export data to csv using SQL Server stored procedure
当我在 SQL 服务器中执行存储过程并将数据导出到 .csv
(使用 "Save Result As")时,输出 .csv
的格式非常好。
我的目标是以这种格式提取数据,headers:
PK1,2005/010,#,Not Analysed,CVOI001,C Voice 001 Test Account,PI -Local,11/11/2019,-571.430,C,T00012
PK1,2005/010,#,Not Analysed,32400,Annual bonus,PI -Local,11/11/2019,571.430,D,T00012
但是当我使用sqlcmd
从同一个存储过程中提取数据时(目标是自动化这个提取任务),格式非常不同,用“------”来分隔headers 以及字段中的大量填充。抱歉,我不能 post headers,因为 post 会超出字符数限制。
这是我的代码和当前输出。有什么我应该改变的吗?
sqlcmd -S SUNSERVER -E -Q "Exec SunSystemsData.[dbo].[z_UniFocusExtract] $(BUCode), $(LCode), $(TCodeNo), $(NoDayBack)"
-v BUCode='PK1' LCode='ANAL_T1' TCodeNo='2' NoDayBack='-100' -s "," -o "C:/Test/Test.csv"
PK1 ,2005/010,# ,Not Analysed ,CVOI001 ,C Voice 001 Test Account ,PI -Local ,11/11/2019 , -571.430,C ,T00012
PK1 ,2005/010,# ,Not Analysed ,32400 ,Annual bonus ,PI -Local ,11/11/2019 , 571.430,D ,T00012
您可以再添加一个参数以从生成的 csv 文件中删除 headers。
-h-1 removes column name headers from the result
-h headers
Specifies the number of rows to print between the column headings. The default is to print headings one time for each set of
query results. This option sets the sqlcmd scripting variable
SQLCMDHEADERS. Use -1 to specify that headers not be printed. Any
value that is not valid causes sqlcmd to generate an error message and
then exit.
要删除列宽中的额外填充空间,请添加 -W 参数。我已经测试过了。它工作正常。
-W This option removes trailing spaces from a column. Use this option together with the -s option when preparing data that is to be exported
to another application. Cannot be used with the -y or -Y options.
当我在 SQL 服务器中执行存储过程并将数据导出到 .csv
(使用 "Save Result As")时,输出 .csv
的格式非常好。
我的目标是以这种格式提取数据,headers:
PK1,2005/010,#,Not Analysed,CVOI001,C Voice 001 Test Account,PI -Local,11/11/2019,-571.430,C,T00012
PK1,2005/010,#,Not Analysed,32400,Annual bonus,PI -Local,11/11/2019,571.430,D,T00012
但是当我使用sqlcmd
从同一个存储过程中提取数据时(目标是自动化这个提取任务),格式非常不同,用“------”来分隔headers 以及字段中的大量填充。抱歉,我不能 post headers,因为 post 会超出字符数限制。
这是我的代码和当前输出。有什么我应该改变的吗?
sqlcmd -S SUNSERVER -E -Q "Exec SunSystemsData.[dbo].[z_UniFocusExtract] $(BUCode), $(LCode), $(TCodeNo), $(NoDayBack)"
-v BUCode='PK1' LCode='ANAL_T1' TCodeNo='2' NoDayBack='-100' -s "," -o "C:/Test/Test.csv"
PK1 ,2005/010,# ,Not Analysed ,CVOI001 ,C Voice 001 Test Account ,PI -Local ,11/11/2019 , -571.430,C ,T00012
PK1 ,2005/010,# ,Not Analysed ,32400 ,Annual bonus ,PI -Local ,11/11/2019 , 571.430,D ,T00012
您可以再添加一个参数以从生成的 csv 文件中删除 headers。
-h-1 removes column name headers from the result
-h headers
Specifies the number of rows to print between the column headings. The default is to print headings one time for each set of query results. This option sets the sqlcmd scripting variable SQLCMDHEADERS. Use -1 to specify that headers not be printed. Any value that is not valid causes sqlcmd to generate an error message and then exit.
要删除列宽中的额外填充空间,请添加 -W 参数。我已经测试过了。它工作正常。
-W This option removes trailing spaces from a column. Use this option together with the -s option when preparing data that is to be exported to another application. Cannot be used with the -y or -Y options.