web-dev-qa-db-ja.com

SQLServerクエリ結果から列ヘッダーを削除します

SQLServerクエリ出力から列ヘッダーを削除したい。検索しましたが、解決策が見つかりませんでした。クエリがあります。

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

出力から列ヘッダーを削除したい。

5
Ironic

SSMSの[ツール]/[オプション]/[クエリ結果]/[SQLServer]/[テキストへの結果]の下に、[結果セットに列ヘッダーを含める]チェックボックスがあります。結果はグリッドと同様です。

PowerShellを介してsqlcmdを使用している場合は、/ h-1を使用してヘッダーを無効にできます。

この設定は、環境変数SQLCMDHEADERSに対応します。

ヒントとコツ

-1の値を使用して、ヘッダーを印刷しないように指定します。 -1を指定する場合は、パラメーターと設定の間にスペースがあってはなりません。つまり、-h-1です。それ以外の場合、SQLCMDはそれを別個のオプションとして解釈し、失敗します。

例([TechNet]から変更) 1

sqlcmd -q /h-1 "SELECT * FROM AdventureWorks2012.Person.Person"

-h-1でも機能します

11
Karl Kieninger

Management Studioのクエリウィンドウで、右クリックして[クエリオプション]を選択します。左側のツリーで[結果]> [テキスト]を探し、[結果セットに列ヘッダーを含める]オプションを確認します。 Hamlet Hakobyanは正しいと思います。列ヘッダーを追加するのは、クライアントです。

4
Surrogate

最後の行を置き換えます$objTable | Export-CSV $AttachmentPath

$objTable | ConvertTo-Csv -NoTypeInformation | select -Skip 1 | out-file $AttachmentPath
2
Nitesh

[名前を付けて保存]オプションを使用すると、属性(列)名は含まれません。

0
sticks