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

अल्पविराम सीमांकित स्ट्रिंग से बल्क इंसर्ट

मुझे यकीन नहीं है कि टी-एसक्यूएल में करने का कोई सीधा तरीका है, लेकिन अगर आप बल्क इंसर्ट का उपयोग करना चाहते हैं तो आप sqlcmd का उपयोग कर सकते हैं CSV फ़ाइल में निर्यात करने के लिए और फिर फ़ाइल को बल्क इंसर्ट का उपयोग करके सर्वर में वापस आयात करें।

एक dbo.Split बनाएं Functionm, आप यहाँ देख सकते हैं स्ट्रिंग को कई रिकॉर्ड में विभाजित करें कई अच्छे उदाहरण हैं।

यदि आप बैच प्रक्रिया के रूप में निष्पादित करना चाहते हैं, तो आप निष्पादित कर सकते हैं sqlcmd और 'बल्क इंसर्ट'

sqlcmd -S MyServer -d myDB -E -Q "select dbo.Split(col1) from SomeTable" 
       -o "MyData.csv" -h-1 -s"," -w 700

-s"," sets the column seperator to 

bulk insert destTable
from "MyData.csv"
with 
(
  FIELDTERMINATOR = ',',
  ROWTERMINATOR = '\n'
)

अन्यथा, आप सीधे टी-एसक्यूएल में हेरफेर कर सकते हैं, लेकिन यह देखते हुए कि आपके पास कॉलम परिभाषा की समान पहचान है।

 INSERT INTO DestinationTable
 SELECT dbo.Split(col1) FROM SomeTable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एडीओ पैरामीटरयुक्त क्वेरी के साथ चर @myvariable त्रुटि घोषित करनी चाहिए

  2. SQL सर्वर पर DEADLOCK का अनुकरण कैसे करें?

  3. SQL सर्वर 2008 बाधा नहीं छोड़ सकता

  4. किसी विशिष्ट मान के साथ एक varbinary फ़ील्ड को कैसे अपडेट करें?

  5. स्तंभों की गतिशील सूची के साथ SQL पिवट डेटा