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

कैसे ठीक करें "निष्पादन कथन विफल हुआ क्योंकि इसके परिणाम सेट क्लॉज के साथ 1 परिणाम सेट निर्दिष्ट है ..." SQL सर्वर में

यदि आप संग्रहीत कार्यविधि को निष्पादित करने का प्रयास करते समय त्रुटि संदेश 11535, स्तर 16 का सामना करते हैं, तो इसका कारण यह है कि आपने WITH RESULT SETS में पर्याप्त परिणाम सेट परिभाषित नहीं किए हैं खंड।

कुछ संग्रहीत कार्यविधियाँ कई परिणाम सेट लौटाती हैं। WITH RESULT SETS का उपयोग करते समय खंड, आपको प्रत्येक अपेक्षित परिणाम सेट को परिभाषित करने की आवश्यकता है। आपको ऐसा करने की आवश्यकता है, भले ही आप केवल एक या कुछ परिणाम सेट की परिभाषा बदलना चाहते हों।

इस त्रुटि को ठीक करने के लिए, बस अतिरिक्त परिणाम सेट को WITH RESULT SETS . में जोड़ें खंड, प्रत्येक को अल्पविराम से अलग किया गया है।

आप WITH RESULT SETS . को हटाकर भी इसे ठीक कर सकते हैं खंड, लेकिन मुझे लगता है कि आप इसका उपयोग किसी कारण से कर रहे हैं (यानी आपको प्रक्रिया द्वारा लौटाए गए परिणाम सेट को फिर से परिभाषित करने की आवश्यकता है)।

कोड का उदाहरण जो त्रुटि का कारण बनता है

मान लीजिए कि हमारे पास एक संग्रहीत कार्यविधि है जो तीन परिणाम सेट लौटाती है।

EXEC sp_getCityStateCountryByCityId @CityId = 1;

परिणाम:

+------------+----------------------------+-----------------------------+
| CityName   | LatestRecordedPopulation   | ValidFrom                   |
|------------+----------------------------+-----------------------------|
| Aaronsburg | 613                        | 2013-01-01 00:00:00.0000000 |
+------------+----------------------------+-----------------------------+
(1 row affected)
+---------------------+---------------------+----------------------------+
| StateProvinceCode   | StateProvinceName   | LatestRecordedPopulation   |
|---------------------+---------------------+----------------------------|
| PA                  | Pennsylvania        | 13284753                   |
+---------------------+---------------------+----------------------------+
(1 row affected)
+-----------------+---------------+----------------------------+
| IsoAlpha3Code   | CountryName   | LatestRecordedPopulation   |
|-----------------+---------------+----------------------------|
| USA             | United States | 313973000                  |
+-----------------+---------------+----------------------------+
(1 row affected)

और कहें कि हम WITH RESULT SETS का उपयोग करना चाहते हैं क्लॉज केवल पहले परिणाम सेट के कॉलम को फिर से परिभाषित करने के लिए।

निम्नलिखित कोड के साथ ऐसा करने से त्रुटि उत्पन्न होगी।

EXEC sp_getCityStateCountryByCityId @CityId = 1
WITH RESULT SETS   
(  
    (
        [City] nvarchar(50),
        [Population] int,
        [Valid From] date
    )
);

परिणाम:

Msg 11535, Level 16, State 1, Procedure sp_getCityStateCountryByCityId, Line 14
EXECUTE statement failed because its WITH RESULT SETS clause specified 1 result set(s), and the statement tried to send more result sets than this.

ऐसा इसलिए है क्योंकि हमने अन्य परिणाम सेटों को WITH RESULT SETS . में शामिल नहीं किया है खंड।

समाधान

समाधान अन्य परिणाम सेटों को WITH RESULT SETS . में शामिल करना है खंड।

EXEC sp_getCityStateCountryByCityId @CityId = 1
WITH RESULT SETS   
(  
    (
        [City] nvarchar(50),
        [Population] int,
        [Valid From] date
    ),
    (
        [State Code] nvarchar(5),
        [State Name] nvarchar(50),
        [Population] int
    ),
    (
        [Country Code] nvarchar(3),
        [Country Name] nvarchar(60),
        [Population] int
    )
);

परिणाम:

+------------+--------------+--------------+
| City       | Population   | Valid From   |
|------------+--------------+--------------|
| Aaronsburg | 613          | 2013-01-01   |
+------------+--------------+--------------+
(1 row affected)
+--------------+--------------+--------------+
| State Code   | State Name   | Population   |
|--------------+--------------+--------------|
| PA           | Pennsylvania | 13284753     |
+--------------+--------------+--------------+
(1 row affected)
+----------------+----------------+--------------+
| Country Code   | Country Name   | Population   |
|----------------+----------------+--------------|
| USA            | United States  | 313973000    |
+----------------+----------------+--------------+
(1 row affected)

समस्या अब ठीक कर दी गई है।


  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 सर्वर तालिका में कॉलम पर शून्य बाधा कैसे बनाएं - SQL सर्वर / टी-एसक्यूएल ट्यूटोरियल भाग 51

  2. हम एसएसएमएस में एन्क्रिप्टेड संग्रहीत प्रक्रिया के शरीर को कैसे देख सकते हैं?

  3. अमान्य स्तंभ नाम sql त्रुटि

  4. SQL सर्वर डेटाबेस में सभी दृश्यों को सूचीबद्ध करने के 4 तरीके

  5. SQL सर्वर का उपयोग करके सॉफ़्टवेयर संस्करणों की तुलना कैसे करें?