2017-12-01 34 views
1

Microsoft SQL Server Managementスタジオを使用していますが、現在データベースにCSVファイルをいくつかインポートしています。次のクエリを使用して、既存のテーブルにBULK INSERTコマンドを使用してCSVファイルをインポートします。CSVファイルの最初の行を列名として使用SQL

BULK INSERT myTable 
    FROM >>'D:\myfolder\file.csv' 
    WITH 
    (FIRSTROW = 2, 
    FIELDTERMINATOR = ';', --CSV Field Delimiter 
    ROWTERMINATOR = '\n', -- Used to shift to the next row 
    ERRORFILE = 'D:\myfolder\Error Files\myErrrorFile.csv', 
    TABLOCK 
    ) 

これはこれまでのところうまく動作しますが、テーブルの列に名前を付けるプロセスを自動化したいと思います。具体的には、テーブルを作成し、CSVファイルの最初の行の内容である列名として使用したいと考えています。それは可能ですか?

+0

これが役立つかもしれません。https://stackoverflow.com/questions/2381528/how-to-bulk-insert-a-file-into-a-temporary-table-where-the-filename-is-a-varia https://docs.microsoft.com/en-us/sql/integration-services/sql-server-integration-servicesおよびhttps://docs.microsoft.com/en-us/sql/ssdt/download-sqlを参照してください。 -server-data-tools-ssdtはこのジョブにもっと役立ちます。 –

答えて

0

私は考えることができる最も簡単な方法は次のとおりです。

データベース上で右クリックし

、選択:タスク - >データのインポート...その後

SQL Serverインポートおよびエクスポートウィザード意志表示。そこには、任意のソースからデータをインポートする際の指定やカスタム設定(ファイルの最初の行から列名を取得するなど)がすべて用意されています。

あなたの場合、データソースはフラットファイルソースになります。

+0

まずはお返事ありがとうございます!私が実際に望むのは、クエリを使用して実装することです。これは設定された要件であり、プロセス全体をより迅速に実行できるようにするものです。あなたはどのようにそのようなクエリを構築する上での任意のアイデアを持っていますか? –

関連する問題