删除 SQLCMD 中的连字符

Removing hyphens in SQLCMD

这是一种在 SQL cmd 中删除虚线--------的方法吗?例如:

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

您无法阻止 sqlcmd 以该形式为您提供结果。您所能做的就是 post-对其进行处理以删除包含连字符的行。喜欢:

sqlcmd ... | sed -e '2d'

我找到了最佳解决方案:

(1)得到列headers

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.csv" -s "|"

(2)删除连字符行

findstr /R /C:"^[^-]*$" C:\export-sql-server-to-csv.csv > C:\export-sql-server-to-csv.csv 

(3)获取数据不带headers

sqlcmd -S DEV\SQLEXPRESS -d www -U dbadmin -P Admin123$ -i "C:\export-sql-server-to-csv.sql" -s "|" -h -1 -o "C:\export-sql-server-to-csv.csv"

(4)附加header和数据

type C:\export-sql-server-to-csv.csv C:\export-sql-server-to-csv.csv > C:\export-sql-server-to-csv.csv

这两个步骤将使您在 .csv 文件中获得 table 提取,没有连字符,也没有行数。 (久经考验)

  1. 带有 headers 的输出列(这将在 o/p 文件中包含连字符) sqlcmd -S YourServer -Q "set nocount on;select columnnames from YourDB.YourSchema.TheTableOrView" -o "Extract.csv" -s "," -W 700

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