マルチタブの Excel スプレッドシートを SQL Server 2008R2 にインポートするプロセスを作成する必要があります。各タブは、データベース内の異なるテーブルになります。これは毎週行う必要があり、インポートは自動化する必要があります。理想的には、スプレッドシートをフォルダーにポップし[またはインターンに実行させて]、このフォルダーを検索するプロシージャをSQLに実行させ、このデータベースのテーブルにデータを追加します。また、インポートを追跡し、日付をスタンプする別のテーブルが必要です。私はtsqlに関してはかなり初心者なので、ここからどこから始めるべきか本当にわかりません。
4 に答える
以下は、csv ファイルから特定のテーブルにデータを挿入するコードです。プロジェクトの完全な要件はわかりませんが、私であれば、各テーブルを別のファイルに分割し、各テーブルにデータを挿入するプロシージャを実行するだけです。
BULK
INSERT TABLE_NAME
FROM 'c:\filename.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
insert into import_history ('filename', 'import_date') values ('your_file_name', getdate())
また、インポートを追跡してタイムスタンプを付けるテーブルの場合、上記のように、一括挿入のたびにそのテーブルにデータを挿入するだけで済みます。
また、csv ファイルからの一括挿入に関するチュートリアルへのリンクも役立ちます。 -using-bulk-insert-load-comma-delimited-file-into-sql-server/
のみに制限されている場合はTSQL
、上記の 2 つの回答からいくつかのアイデアが得られます。または のいずれData Tools
かBusiness Intelligence
にアクセスできる場合SSIS
は、Excel ワークブックの各シートが毎回一致するという前提で自動化できます。ではSSIS
、データ フロー タスクを使用すると、各シートが目的のテーブルにインポートされます。翌週にファイルの準備ができたら、ファイルをフォルダーにドロップしてSSIS
パッケージを実行します。
ただし、シート名が変更された場合 (たとえば、ある週のシートは Cats、Dogs、Rain と呼ばれ、次の週は Sulfur、Fire、Hell と呼ばれる)、これによりパッケージが破損する可能性があります。それ以外の場合、ワークシート内のデータのみが変更された場合、これは SSIS で完全に自動化できます。
記事の例: https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/