0

T-SQL を使用して、SQL Server 2008 のテーブルから Windows 7 の Excel ファイルにデータをエクスポートしたいと考えています。インターネットで検索することにより、多くの人が次のことを試みます。

Insert into openrowset ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\MyExcel.xls;','SELECT * FROM [Sheet1$]')
select * FROM mytab

私もやってみました。私はそれが機能していません。

以下も試してください:

sqlcmd -S myServer -d myDB -E -Q "select * from Tab" -o "MyData.csv" -h-1 -s"," 

エラーはありませんが、ファイルは作成されません。これがT-SQLで実行できるかどうかもわかりません。

この場合のより良い解決策はありますか?

4

2 に答える 2

0

バルクコピープログラム=bcp

MSDN: http: //msdn.microsoft.com/en-us/library/ms162802.aspx

使用例:

bcp AdventureWorks2012.Sales.Currency out "Currency Types.dat" -T -c

これはコマンドラインユーティリティであるため、SQL Serverからこれを行う必要がある場合は、コマンドシェル機能を使用する必要があります。あなたが使用していたsqlcmdが潜在的に内部でbcpを使用しようとしていたかどうか私は興味があります。SQLアカウントにアクセスできない可能性があるため、特定の場所に送信する場合は、SQLから直接ファイルを作成すると権限の問題が発生することに注意してください。そして何よりも、TSQLを実行しているマシンはサーバーではないため、ローカルパスを使用するときに保存される場所は、スクリプトを実行しているサーバーに相対的であり、TCP/IPを介してSQLServerにスクリプトを実行しているユーザーではありません。SQL Serverのファイル作成のデフォルトは、サーバー上のSQLServerの「データ」の場所のルートインストールだと思います。何かのようなもの:

C:\Program Files\Microsoft SQL Server\(version current is: 110)\Data
于 2013-03-14T17:43:43.473 に答える
0
  1. エクスポート ウィザードを使用して SSIS パッケージを作成します。[最初の行は列名]、Excel の宛先、ソース テーブルまたはクエリを選択します
  2. 最後のステップで、SSIS パッケージをファイルとして保存します。
  3. sp_configure を使用して xp_cmdshell を有効にする
  4. t-sql スクリプトを使用して実行します ('dtexec /file: ')
于 2013-03-15T06:44:55.453 に答える