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

संग्रहित प्रक्रिया का उपयोग करके थोक सम्मिलित करें

आपके संग्रहीत कार्यविधि कोड में कुछ भी गलत नहीं है - बिंदु यह है: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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यदि आप किसी डेटाबेस (जैसे, SQL सर्वर) में लेन-देन नहीं करते हैं तो क्या होता है?

  2. SQL सर्वर में बाधाओं की जाँच करें

  3. दिनांक में एक दिन जोड़ने के लिए दिनांक जोड़ें का उपयोग करते हुए SQL सर्वर 2005

  4. SQL सर्वर में कॉलम की लंबाई प्राप्त करने के लिए COL_LENGTH () का उपयोग करें

  5. एक SQL सर्वर तालिका से दूसरी पंक्ति में एक पंक्ति की प्रतिलिपि कैसे करें