2015-05-19 14 views
5

को महत्व देता है जब एक अस्थायी तालिका मैं निम्न संदेशअस्थायी तालिका - 1000 पंक्ति की अधिकतम स्वीकृत संख्या

सम्मिलित बयान में पंक्ति मूल्य भाव की संख्या अधिकतम स्वीकृत संख्या से अधिक पाने में 6000 पंक्तियाँ सम्मिलित करने का प्रयास 1000 पंक्ति मानों का।

स्रोत SQL Server में स्थित नहीं है।

CREATE TABLE #TMP_ISIN (
    [Isin] nVARCHAR(250)) 

INSERT INTO #TMP_ISIN ([Isin]) 
VALUES 
ABOUT 6000 ROWS 

इस सीमा से बचने के लिए मैं कैसे करूँ?

उत्तर

9

limit of 1000 बल्कि अस्थायी तालिका खुद की एक सीमा से insert की values खंड में पंक्तियों की संख्या पर है:

पंक्तियों में सीधे पंक्तियों डालने से निर्माण किया जा सकता की अधिकतम संख्या VALUES सूची 1000 है। त्रुटि 10738 वापस आती है यदि पंक्तियों की संख्या उस मामले में 1000 से अधिक हो जाती है।

1000 से अधिक पंक्तियों सम्मिलित करने के लिए, निम्न विधियों में से एक का उपयोग करें:

  • कई सम्मिलित बयान बनाएं;
  • व्युत्पन्न तालिका का उपयोग करें;
  • थोक bcp उपयोगिता या BULK INSERT कथन का उपयोग करके डेटा आयात करें।

इसलिए आप मात्रा में कर सकते हैं, छोटे insert बयान के साथ।

insert into sometable (somecolumns) values <about 1000 rows>; 
insert into sometable (somecolumns) values <about 1000 rows>; 
: 
insert into sometable (somecolumns) values <about 1000 rows>; 

यदि आपको परमाणु होने के लिए सभी 6000 की आवश्यकता है, तो आप पूरी चीज के आसपास एक लेनदेन डाल सकते हैं।

1

यह केवल VALUES खंड के साथ एक समस्या है। यदि आप इस विधि द्वारा 1000 से अधिक पंक्तियों डालने (संदिग्ध दृष्टिकोण लेकिन हे) रहे हैं तो UNION ALL साथ SELECT विवरणों के एक सेट का उपयोग करें:

INSERT #a (a,b) 
SELECT 'a', 'b' UNION ALL 
SELECT 'c', 'd' UNION ALL 
SELECT ...etc 

यह भी लाभ यह है कि आप SELECT बयानों से resultset की जांच कर सकते है INSERT एस करने से पहले - आपको उस विलासिता को VALUES निर्माण के साथ नहीं मिलेगा।

संबंधित मुद्दे