9

マルチタブの Excel スプレッドシートを SQL Server 2008R2 にインポートするプロセスを作成する必要があります。各タブは、データベース内の異なるテーブルになります。これは毎週行う必要があり、インポートは自動化する必要があります。理想的には、スプレッドシートをフォルダーにポップし[またはインターンに実行させて]、このフォルダーを検索するプロシージャをSQLに実行させ、このデータベースのテーブルにデータを追加します。また、インポートを追跡し、日付をスタンプする別のテーブルが必要です。私はtsqlに関してはかなり初心者なので、ここからどこから始めるべきか本当にわかりません。

4

4 に答える 4

3

以下は、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/

于 2013-10-10T17:27:35.033 に答える
3

のみに制限されている場合はTSQL、上記の 2 つの回答からいくつかのアイデアが得られます。または のいずれData ToolsBusiness 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/

于 2013-10-10T18:34:56.303 に答える