2017-04-19 15 views
1

50個以上のExcelファイルがあり、それぞれをSQlサーバーの新しいSQLテーブルにインポートする場合は、テーブルの名前がExcelの名前ファイル SSISを使用してどのように達成できますか?各ExcelファイルをSSISを使用して新しいSQLテーブルにインポート

各ファイルには独自の列名があります。だから私は、フォルダ内の各ファイルをループし、新しいSQLテーブルに各ファイルのデータを取得する方法が必要です

+1

これはあなたを助けるかもしれません:https://www.codeproject.com/Articles/368530/Dynamic-Excel-file-with-SSIS –

+0

これは興味深いですが、これは私が探しているものではありません – LattaliAhmed

+0

BIMLを学ぶのが早いか、手作業で各データフローを手早く作成して作成するかによって、BIMLの仕事になります。 –

答えて

1

これはあなたに何ができるのか一般的な考えを提供します。

インポートファイルの各前に切り捨てステージングテーブルSQL Serverで

CREATE TABLE dbo.ExcelStaging 
(LineId INT NOT NULL IDENTITY(1,1) 
, FileLine VARCHAR(2000) 
, FileName VARCHAR(50) 
) 

をステージング表を作成します。

スクリプトタスクを作成し、ファイルのすべての行を読み込み、ステージングテーブルcolume 'FileLine'に挿入します。 LineId = 1は、元のファイルの列ヘッダーを常に保持する必要があります。区切り文字、コンマ区切り、または固定幅を慎重に選択する必要がありますか?ファイルがあなたのテーブルにロードされたら

、SQLタスクを実行する - ストアドプロシージャ

。ファイル名とLineLid = 1のFileLineに基づいて、新しいSQLテーブルを作成します。新しいテーブルは醜く見えるかもしれません。各フィールドのデータ型がわからないため、すべての列データ型はvarcherです。

b。新しいテーブルに挿入するFileLineの部分文字列をステージングテーブルの列として選択します。ここで選択するデリミタによって、各列の部分文字列の方法が決まります。

+0

良いアイデアだが、私は列のデータ型をExcelと同じに保つ必要がある – LattaliAhmed

+0

いいえ、ファイルをインポートする前にテーブルを作成する必要があります。ファイル名とファイル内容の最初の行を読み取ることにより、どのデータ型がどのように決定されますか? – Wendy

+0

SQLサーバーのインポート/エクスポートウィザードでこれを実行できますが、私の目標は各テーブルを手動で作成せずにSSISで同じことを行うことです。 – LattaliAhmed

関連する問題