2011-09-05 11 views
16

SQL Serverテーブルに数千個のデータファイルをロードする必要があります。 したがって、パラメータ名のファイル名を1つだけ受け取るストアドプロシージャを記述します。 しかし..以下は動作しません。 "コンパイラ"は@ファイル名のパラメータに不満を抱いています。 ありがとうございます。ファイル名パラメータ付き一括挿入

Ilan。

BULK INSERT TblValues 
FROM @FileName 
WITH 
(
FIELDTERMINATOR =',', 
ROWTERMINATOR ='\n' 
) 
+0

あなたは純粋なSQLソリューションを探している、またはあなたがC#/ VBを使用することができますされています?の動的SQLを使用してください問題を解決するために –

+0

ありがとうポール!私はすでに何かを見つけました http://stackoverflow.com/questions/4050790/bulk-insert-using-stored-procedure – Ilan

+0

@IIan、答えがある場合は質問を閉じてください。 1。 –

答えて

28

The syntax for BULK INSERT statementは次のとおりです。

BULK INSERT 
    [ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ] 
     FROM 'data_file' 
    [ WITH 

ので、ファイル名は文字列定数でなければなりません。

DECLARE @sql NVARCHAR(4000) = 'BULK INSERT TblValues FROM ''' + @FileName + ''' WITH (FIELDTERMINATOR ='','', ROWTERMINATOR =''\n'')'; 
EXEC(@sql); 
+1

それはまさに私がやったことです。ありがとう! http://stackoverflow.com/questions/4050790/bulk-insert-using-stored-procedure – Ilan

+1

SQLインジェクションについてはどうですか? – user441365