这是在SQL cmd中删除虚线---------的方法吗? E.g:
Name ID
--------
Alex 13
Alice 22
答案 0 :(得分:3)
我找到了最佳解决方案:
(1)获取列标题
sqlcmd -S DEV\SQLEXPRESS -d www -U dbadmin -P Admin123$ -Q "set nocount on;select top 0 * from dbo.www1" -o "C:\export-sql-server-to-csv\20.csv" -s "|"
(2)删除连字符行
findstr /R /C:"^[^-]*$" C:\export-sql-server-to-csv\20.csv > C:\export-sql-server-to-csv\21.csv
(3)获取没有标题的数据
sqlcmd -S DEV\SQLEXPRESS -d www -U dbadmin -P Admin123$ -i "C:\export-sql-server-to-csv\12.sql" -s "|" -h -1 -o "C:\export-sql-server-to-csv\22.csv"
(4)追加标题和数据
type C:\export-sql-server-to-csv\21.csv C:\export-sql-server-to-csv\22.csv > C:\export-sql-server-to-csv\23.csv
答案 1 :(得分:1)
您无法阻止sqlcmd
以该格式提供结果。您所能做的就是对其进行后处理以删除包含连字符的行。像:
sqlcmd ... | sed -e '2d'
答案 2 :(得分:0)
这两个步骤将为您提供.csv文件中的表提取,没有连字符和行计数。 (尝试和测试)
带标题的输出列(这将在o / p文件中包含连字符) sqlcmd -S YourServer -Q"设置nocount on;从YourDB.YourSchema中选择列名.TableOrView" -o" Extract.csv" -s"," -W 700
从此文件中删除---'并在新创建的csv文件中获取预期的格式。 findstr / R / C:" ^ [^ - ] * $" Extract.csv> Extract1.csv 强>