0

SQL コマンドを使用して csv を作成しようとしています。テストとして単純なテーブルを使用しています。私はこれまでこれを書いてきました:

DECLARE @sql VARCHAR(1000),
        @cmd VARCHAR(100),
        @sqlCommand VARCHAR(1000)

Set @cmd = 'Select * From DSG.Pawtucket.counts'

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"
-s "|" -o <network path> -h-1' 

EXEC master.dbo.xp_cmdshell @sqlCommand

「結果」タブにクエリ結果が表示され、エラーは表示されませんが、ファイルが作成されません。有効なネットワーク パスを使用していることはわかっています。SQLサーバーのローカルC:ドライブにファイルを作成しようとしても成功しませんでした。また、多くの不満と結果なしで bcp を使用してみました。どんな助けでも大歓迎です!

4

1 に答える 1

4

リテラル文字列の改行を取り除く

何を書きましたか

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"
-s "|" -o <network path> -h-1' 

2 つのコマンドを xp_cmdshell に送信します。

結果タブに @cmd からの結果を表示する最初のコマンド。

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd + '"    

そして、何もしないこれ

   -s "|" -o <network path> -h-1'  

以下はあなたが望むものです。キャリッジ リターンを削除する以外に、'" の後にスペースを追加しました。これ-sは、@cmd にあるものと区切る必要があるためです。

SET @sqlCommand = 'SQLCMD -S <server> -U <user> -P <password> -d <database> -W -Q "' + @cmd 
+ '" -s "|" -o <network path> -h-1' 
于 2012-05-03T21:45:26.277 に答える