数千のデータファイルをSQL Serverテーブルにロードする必要があります。したがって、ファイル名という1つのパラメーターのみを受け取るストアドプロシージャを記述します。しかし、..以下は機能しません..「コンパイラ」は@FileNameパラメータについて不平を言います。前もって感謝します。
イラン。
BULK INSERT TblValues
FROM @FileName
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
)
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);