我想从SQL Server查询输出中删除列标题。我做了搜索,但没有找到任何解决方案。我有一个查询,例如。
select cc.DepartmentID , cc.Name from HumanResources.Department cc
当我运行此查询时,我得到这样的输出。
ID Name
12 Document Control
1 Engineering
16 Executive
14 Facilities and Maintenance
10 Finance
9 Human Resources
我想从SQL Server的输出中删除ID和名称(列标题)。
我将通过脚本运行此查询以生成csv文件。
修改
当我通过脚本运行查询时,我将csv文件作为输出,它看起来像这样。
#TYPE System.Data.DataRow
ID Name
更新:
我正在使用powershell脚本。
$Database = "temp"
$Server = "localhost"
$AttachmentPath = "output.csv"
# Connect to SQL and query data, extract data to SQL Adapter
$SqlQuery = "select cc.DepartmentID , cc.Name from HumanResources.Department cc"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;Integrated Security = True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$nRecs = $SqlAdapter.Fill($DataSet)
$nRecs | Out-Null
#Populate Hash Table
$objTable = $DataSet.Tables[0]
#Export Hash Table to CSV File
$objTable | Export-CSV $AttachmentPath
我想从输出中删除列标题。
答案 0 :(得分:10)
在SSMS下的工具/选项/查询结果/ SQL Server /结果文本中,有一个复选框,用于在结果集中包含列标题'。类似于网格的结果。
如果您通过powershell使用sqlcmd,则可以使用/ h-1禁用标题。
此设置对应于环境变量SQLCMDHEADERS。
提示与技巧
使用值-1指定不应包含标头 打印。如果提供-1,则之间必须没有空格 参数和设置,即-h-1。否则,SQLCMD会解释 它作为一个单独的选项而失败。
示例(从[TechNet]修改)1:
sqlcmd -q /h-1 "SELECT * FROM AdventureWorks2012.Person.Person"
也适用于-h-1
答案 1 :(得分:4)
在查询窗口的管理工作室中右键单击并选择查询选项。在左侧的树中查找结果>文本,并在结果集选项中查看包括列标题。我认为Hamlet Hakobyan是对的,它是添加列标题的客户端。
答案 2 :(得分:2)
将最后一行$objTable | Export-CSV $AttachmentPath
替换为
$objTable | ConvertTo-Csv -NoTypeInformation | select -Skip 1 | out-file $AttachmentPath
答案 3 :(得分:0)
使用“另存为”选项不包括属性(列)名称。
答案 4 :(得分:0)
此方法正常工作,并且列标题不存在于输出文件中:
$workpath = "C:\myworkdir"
$InvSQLParams = @{
ServerInstance = "SQL2016"
Database = "testdb"
InputFile = "$($workpath)\selectclause.sql"
}
Invoke-Sqlcmd @InvSQLParams | ConvertTo-Csv -NoTypeInformation | select -Skip 1 | out-file "$($workpath)\result.csv"
答案 5 :(得分:-1)
在你的脚本中,管道(|)输出到“tail +3”命令。 这将跳过SQL的前两行输出。
答案 6 :(得分:-1)
连接数据库后设置此项 SET HEADING OFF