0

このコマンドを実行する
sqlcmd -S server -U sa -P xxxxxxx -i d:clients.sql -o D:\clients.txt
と、ファイル内でx行が影響を受け、「1> 2> 3> 4> 5> 6> 7> 8>」やその他の多くのスペース
が、フォーマットなしで表示されるだけではありません。
SQLファイルにいくつかの選択があります。

少し早いですがお礼を。

4

1 に答える 1

1

SET NOCOUNT ONスクリプトに追加してメッセージを削除rows affectedし、コマンドラインに追加-h-1して列名とその下の行を削除できます。これは私にとってはうまくいき、行データのみを返します:

sqlcmd -E -i query.sql -o tmp.txt -h-1

query.sqlのようになります。

set nocount on;
select name from sys.objects;

1> 2> 3> 4> 5> 6> 7> 8>しかし、キャラクターがどこから来ているのかわかりません。その出力を提供する SQL スクリプトの最小限の例を投稿することをお勧めします。

一般的なコメントとして、出力を制御するのが難しいため、クエリの実行に sqlcmd.exe を使用するのは個人的には好きではありません。考慮すべきその他の事項は次のとおりです。

  • 区切りファイルが必要な場合は、bcp.exe を使用します。
  • PowerShell、Perl、または任意の言語でスクリプトを使用します
  • SSIS パッケージを使用する
  • 入力ファイルを使用する代わりに、スクリプトの内容をストアド プロシージャに入れて実行します。
于 2013-03-15T16:40:52.937 に答える