web-dev-qa-db-ja.com

ファイル名パラメーターを使用した一括挿入

数千のデータファイルをSQL Serverテーブルにロードする必要があります。したがって、ファイル名という1つのパラメーターのみを受け取るストアドプロシージャを記述します。しかし、..以下は機能しません..「コンパイラ」は@FileNameパラメータについて不平を言います。前もって感謝します。

イラン。

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

BULK INSERTステートメントの構文 は次のとおりです。

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

したがって、ファイル名は文字列定数でなければなりません。この問題を解決するには、動的SQLを使用してください。

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