使用以下sqlcmd脚本:
sqlcmd -S . -d MyDb -E -s, -W -Q "select account,rptmonth, thename from theTable"
> c:\dataExport.csv
我得到一个包含
的csv输出文件acctnum,rptmonth,facilname
-------,--------,---------
ALLE04,201406,Allendale老年人生活社区 - LTC APPL02,201406,Applewood Estates ARBO02,201406,Arbor Care Centre
ARIS01,201406,樱桃AristaCare 希尔
。 。 。(139行受影响)
有没有办法摆脱列标题下的虚线:-------,--------,但保留列标题?
还有一种方法可以摆脱底部用于行数的两条线?
我尝试使用parm -h-1但是除去了列标题以及虚线。
答案 0 :(得分:26)
解决方案:
1)要删除行数("(受影响的139行)"),您应该使用SET NOCOUNT ON
语句。请参阅ref。
2)要删除列标题,您应使用值-h
的{{1}}参数。请参阅ref (section Formatting Options)。
示例:
-1
或
C:\Users\sqlservr.exe>sqlcmd -S(local)\SQL2012 -d Test -E -h -1 -s, -W -Q "set nocount on; select * from dbo.Account" > d:\export.txt.
答案 1 :(得分:3)
使用以下内容;
sqlcmd -S . -d MyDb -E -s, -h-1 -W -Q "set nocount on;select 'account','rptmonth', 'thename';select account,rptmonth, thename from theTable"
> c:\dataExport.csv
答案 2 :(得分:2)
在我的案例中效果很好:
输入Temp.txt | findstr / v - > DestFile.txt
答案 3 :(得分:2)
答案最高的那个人没有回答如何删除虚线。这是我很棒的解决方案。
对不起,我迟到了4年9个月。
答案 4 :(得分:1)
删除行数: 将以下内容添加到SQL语句
SET NOCOUNT ON;
要删除连字符行,请在成功执行后尝试以下操作:
findstr /v /c:"---" c:\dataExport.csv > c:\finalExport.csv
我用" ---"因为我的所有列都超过3个字符而且我的数据中没有该字符串,但您也可以使用" - , - "根据您的数据代替","来进一步降低风险或任何分隔符。
答案 5 :(得分:0)
1.首先使用标题列
创建文件2.使用选项-h-1
将sqlcmd输出应用于文件echo acctnum,rptmonth,facilname> C:\ dataExport.csv sqlcmd -S。 -d MyDb -E -s,-h-1 -W -Q"从theTable"中选择帐户,rptmonth,thename >> C:\ dataExport.csv
答案 6 :(得分:0)
此外,如果要查询表中的所有记录,则可以编码为
将上述查询分配给变量%query%。该命令将如下所示。
SQLCMD -h -1 -W -E -S %sql_server% -d %sql_dabase% -Q %query% -s"," -o output_file.csv
答案 7 :(得分:0)
我使用了另一种解决方案来解决删除标题下方的虚线的问题。
DECLARE @combinedString VARCHAR(MAX);
SELECT @combinedString = COALESCE(@combinedString + '|', '') + COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YOUR_TABLE_NAME'
然后只用
选择语句上方Print @combinedString
。
我使用了管道定界符。