ストアド プロシージャ コードに問題はありません。ポイントは BULK INSERT
です。 コマンドはファイル名を変数として受け入れることができません。
これは機能します:
BULK INSERT ZIPCodes FROM 'e:\5-digit Commercial.csv' WITH
プレ>しかし、これは決して機能しません - ストアド プロシージャ内であろうとなかろうと:
DECLARE @filename VARCHAR(255) SET @filename = 'e:\5-digit Commercial.csv' BULK INSERT ZIPCodes FROM @filename WITH
プレ>したがって、残念ながら、この方法ではできません。
BULK INSERT
を構築することを検討できます ステートメントを文字列として (固定ファイル名で) 実行し、それを動的 SQL として実行しますが、他に解決策はありません。DECLARE @filepath nvarchar(500) SET @filepath = N'e:\5-digit Commercial.csv' DECLARE @bulkinsert NVARCHAR(2000) SET @bulkinsert = N'BULK INSERT ZIPCodes FROM ''' + @filepath + N''' WITH (FIRSTROW = 2, FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'')' EXEC sp_executesql @bulkinsert
プレ>