78

csvしたいこと: SQL Server インポート エクスポート ウィザードを使用せずに、SQL Serverデータベースからコンマ区切りファイルにテーブルをエクスポートする

自動化でクエリを使いたいのでクエリでやりたい

出来ますか?私はそれを検索しましたが、良い答えが見つかりませんでした

4

10 に答える 10

142

いくつかのアイデア:

SQL Server Management Studio から

 1. Run a SELECT statement to filter your data
 2. Click on the top-left corner to select all rows
 3. Right-click to copy all the selected
 4. Paste the copied content on Microsoft Excel
 5. Save as CSV

SQLCMD (コマンド プロンプト) の使用

例:

コマンド プロンプトからクエリを実行し、ファイルにエクスポートできます。

sqlcmd -S . -d DatabaseName -E -s, -W -Q "SELECT * FROM TableName" > C:\Test.csv

引用符をセパレーターとして設定する場合を除き、引用符セパレーターを使用しないでください。引用符 -s',' は使用しないでください。

詳細はこちら: ExcelSQLServer

ノート:

  • このアプローチでは、ファイルの下部に「影響を受ける行」の情報が含まれますが、クエリ自体で「SET NOCOUNT ON」を使用すると、これを取り除くことができます。

  • 実際のクエリの代わりにストアド プロシージャを実行することもできます (例: "EXEC Database.dbo.StoredProcedure")。

  • これを自動化するために、任意のプログラミング言語またはバッチファイルを使用できます

BCP の使用 (コマンド プロンプト)

例:

bcp "SELECT * FROM Database.dbo.Table" queryout C:\Test.csv -c -t',' -T -S .\SQLEXPRESS

カンマ区切りを -t',' と -t, だけで引用することが重要です。

詳細はこちら: bcp ユーティリティ

ノート:

  • SQLCMD を使用する場合と同様に、実際のクエリの代わりにストアド プロシージャを実行できます。
  • これを自動化するには、任意のプログラミング言語またはバッチ ファイルを使用できます。

お役に立てれば。

于 2013-01-10T20:47:54.803 に答える
8

これは、Excelにエクスポートするために見つけたオプションです(CSV用に変更できると思います)

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;', 
'SELECT * FROM [SheetName$]') select * from SQLServerTable
于 2014-01-03T12:12:10.033 に答える
8

次の Node.js モジュールを使用して簡単に実行することもできます。

https://www.npmjs.com/package/mssql-to-csv

var mssqlExport = require('mssql-to-csv')

    // All config options supported by https://www.npmjs.com/package/mssql 
    var dbconfig = {
        user: 'username',
        password: 'pass',
        server: 'servername',
        database: 'dbname',
        requestTimeout: 320000,
        pool: {
            max: 20,
            min: 12,
            idleTimeoutMillis: 30000
        }
    };

    var options = {
        ignoreList: ["sysdiagrams"], // tables to ignore 
        tables: [],                  // empty to export all the tables 
        outputDirectory: 'somedir',
        log: true
    };

    mssqlExport(dbconfig, options).then(function(){
        console.log("All done successfully!");
        process.exit(0);
    }).catch(function(err){
        console.log(err.toString());
        process.exit(-1);
   });
于 2016-02-04T08:45:58.657 に答える
4

SQL Server Management Studio から

エクスポートするテーブルを右クリックし、[すべての行を選択] を選択します。

結果ウィンドウを右クリックし、[名前を付けて結果を保存...] を選択します。

于 2016-07-11T22:33:04.763 に答える
1

まさにそれを行う小さなツールを作成しました。コードはgithubで入手できます。

1 つ (または複数) の SQL クエリの結果を 1 つ (または複数) の CSV ファイルにダンプするには:

java -jar sql_dumper.jar /path/sql/files/ /path/out/ user pass jdbcString

乾杯。

于 2016-11-23T17:16:27.253 に答える