Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर पर BULK INSERT के साथ एक खाली स्ट्रिंग डालें

जहां तक ​​​​मुझे पता है, बल्क इंसर्ट खाली स्ट्रिंग नहीं डाल सकता है, यह या तो शून्य मान रख सकता है या डिफ़ॉल्ट मान का उपयोग 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     |  ''   


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एमएस एसक्यूएल तिथियों की तुलना करें?

  2. मापदंडों के बिना SQL इंजेक्शन से बचना

  3. तदर्थ एसक्यूएल बनाम संग्रहित प्रक्रियाओं को लिखना कब बेहतर होता है

  4. एसक्यूएल सर्वर 2008 - ट्रिगर डालने/अपडेट करने पर जो मूल्यों को किसी अन्य तालिका में कॉपी करता है?

  5. टीएसक्यूएल में बढ़ती तिथियों का परिणाम उत्पन्न करें