मैंने आपकी समस्या को SQL Server 2008 R2 पर पुन:प्रस्तुत किया। समाधान आपकी फ़ाइल में एक नई पंक्ति जोड़ने जितना आसान है ताकि अंतिम पंक्ति एक नई पंक्ति के साथ समाप्त हो जाए।
मैंने दो फ़ाइलें बनाईं:
फिर निम्न स्क्रिप्ट चलाई:
CREATE TABLE #t(first_name VARCHAR(128),last_name_etc VARCHAR(128),sex CHAR(1),test VARCHAR(128));
BULK INSERT #t
FROM 'C:\temp\without_newline.txt'
WITH (
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n'
);
SELECT * FROM #t;
TRUNCATE TABLE #t;
BULK INSERT #t
FROM 'C:\temp\with_newline.txt'
WITH (
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n'
);
SELECT * FROM #t;
DROP TABLE #t;
परिणाम 1:
first_name | last_name_etc | sex | test
--------------------------------------------
Tom | Jackson 2/28/1986 | M | test
परिणाम 2:
first_name | last_name_etc | sex | test
--------------------------------------------
Tom | Jackson 2/28/1986 | M | test
Mike | Johnson 1/29/1987 | M | NULL
समाधान यह सुनिश्चित करने जितना आसान होना चाहिए कि अंतिम पंक्ति \r\n
. के साथ समाप्त हो जाए . या तो आप टेक्स्ट फ़ाइल बनाने वाली प्रक्रिया को बदल दें या बल्क इंसर्ट करने से ठीक पहले इसे मैन्युअल रूप से करें।
इसे मैन्युअल रूप से करने का एक तरीका EXEC xp_cmdshell 'echo. >> C:\temp\without_newline.txt'
बल्क इंसर्ट करने से ठीक पहले।