删除SQLCMD中的连字符

时间:2015-05-26 07:22:40

标签: bash sqlcmd

这是在SQL cmd中删除虚线---------的方法吗? E.g:

Name  ID
--------
Alex  13
Alice 22

3 个答案:

答案 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文件中的表提取,没有连字符和行计数。 (尝试和测试)

  1. 带标题的输出列(这将在o / p文件中包含连字符) sqlcmd -S YourServer -Q"设置nocount on;从YourDB.YourSchema中选择列名.TableOrView" -o" Extract.csv" -s"," -W 700

  2. 从此文件中删除---'并在新创建的csv文件中获取预期的格式。 findstr / R / C:" ^ [^ - ] * $" Extract.csv> Extract1.csv