2013-10-10 14 views
6

複数タブのExcelスプレッドシートをSQL Server 2008R2にインポートするプロセスを作成する必要があります。各タブはデータベース内の異なるテーブルになります。これは毎週行う必要があり、輸入は自動化されるべきです。理想的には、私はスプレッドシートをポップアップにポップしたい[またはいくつかのインターンでそれを行う]し、このフォルダを探してこのdbのテーブルにデータを追加するプロシージャをSQLに実行させたい。また、インポートと日付スタンプを追跡する別のテーブルを用意したいと思います。私は本当にどこから始めるべきか分かりません。なぜなら、それはtsqlに関してはかなり大きなノブです。ExcelをSQL Server 2008にインポート

答えて

2

あなたは、単にTSQLに限られている場合は、上記の2つの答えはあなたにいくつかのアイデアが表示されます。 Data ToolsまたはBusiness Intelligenceのいずれかにアクセスする場合は、SSISで、Excelブックの各シートが毎回一致することを前提に自動化できます。 SSISを使用すると、データフロータスクが使用され、各シートが必要なテーブルにインポートされます。次の週にファイルの準備ができたら、それをフォルダにドロップし、SSISパッケージを実行します。

しかし、シート名が変更された場合(たとえば、1週間のシートを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/

+0

私は記事を読んで、それはかなり緊張しているようですightforward。各タブ\テーブルごとに異なるデータフローブランチを作成していますか? – d90

+0

@NicholasJDininno複数のシートを使用すると、1つのデータフロータスクがあり、そのデータフロータスク内に複数のADO.NETまたはOLE DB接続先を持つ複数のExcelソースがあります。選択すると、いくつかのデータフローを実行できます。それはあなた次第です。 – Question3CPO

5

マイクロソフトのいい記事があります - http://support.microsoft.com/kb/321686 - 関連するプロセスの概要を説明しています。

プロセスは単にXLImport3は、あなたがにインポートするテーブルであり、データソースは、あなたがからインポートするExcelシートである

SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 
    'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$] 

です。

+0

です'OpenDatasource' – illumi

2

以下は、csvファイルから特定のテーブルにデータを挿入するコードです。私はプロジェクトの全要件が何であるかは分かりませんが、もし私があなただったら、各テーブルを別のファイルに分けて、それぞれのテーブルにデータを挿入するprocを実行するだけです。上で見たよう

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ファイルから挿入するバルクのチュートリアルへのリンクです:http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

0

非常に簡単です。右は、SQL Server(2008)でデータベースをクリックしTasksを選択し、Import Data

enter image description here



を選択今Microsoft ExcelDataSourceを変更します。 BrowseボタンをクリックしてExcelファイルのパスを選択し、Nextをクリックします。

enter image description here





Sql Server instanceを選択し、エクセルをインポートするためのデータベースを選択しました。

enter image description here



Copy data from one or more tables or viewsを選択し、Nextをクリックします。今

enter image description here



Sql Serverにインポートするシートを選択します。

enter image description here



クリックNext

enter image description here



今すぐクリックFinish

enter image description here



ウィザードはSql ServerExcelからデータをインポートし、Closeをクリックします。ここでenter image description here





は、使用するためには、sp_configureを使用して 'アドホッククエリ分散' の使用を有効にする必要がテーブル

enter image description here

+0

OPが "...自動化する必要があります...." – kfm2000

関連する問題