जहां तक मुझे पता है, बल्क इंसर्ट खाली स्ट्रिंग नहीं डाल सकता है, यह या तो शून्य मान रख सकता है या डिफ़ॉल्ट मान का उपयोग Keepnulls विकल्प के साथ या बिना Keepnulls विकल्प के कर सकता है। आपके 3 नमूना रिकॉर्ड के लिए, डेटाबेस डालने के बाद, यह इस तरह होना चाहिए:
| id | name | 1 | NULL | 1 | "" | 1 | ''
इसका कारण यह है कि, बल्क इंसर्ट आपकी पहली पंक्ति, दूसरे कॉलम मान को शून्य मानेगा; अन्य 2 पंक्तियों के लिए, दूसरा कॉलम मान शून्य के रूप में नहीं लेगा, और इसे वैसे ही ले जाएगा जैसा वह है।
आपके लिए खाली स्ट्रिंग मान डालने के लिए बल्क इंसर्ट की अनुमति देने के बजाय, आप खाली स्ट्रिंग के रूप में डिफ़ॉल्ट मान वाले टेबल कॉलम को दे सकते हैं।
निम्नलिखित उदाहरण:
CREATE TABLE BulkInsertTest (id int, name varchar(10) DEFAULT '')
Bulk Insert same CSV file into table
BULK INSERT Adventure.dbo.BulkInsertTest
FROM '....\test.csv'
WITH
(
FIELDTERMINATOR ='\,',
ROWTERMINATOR ='\n'
)
SELECT * FROM BulkInsertTest
परिणाम निम्न जैसा होगा:(आपके सीएसवी में पहली पंक्ति को एक खाली स्ट्रिंग मिलेगी)
| id | name | 1 | | 1 | "" | 1 | ''