आपके संग्रहीत कार्यविधि कोड में कुछ भी गलत नहीं है - बिंदु यह है: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
. बनाने पर विचार कर सकते हैं एक स्ट्रिंग के रूप में कथन (एक निश्चित फ़ाइल नाम के साथ) और फिर इसे गतिशील एसक्यूएल के रूप में निष्पादित करें - लेकिन मुझे वास्तव में कोई अन्य समाधान नहीं दिख रहा है।
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