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

एक ही स्टोर प्रक्रिया में 3 अपडेट का उपयोग करना? छोटी त्रुटि

आप SP की शुरुआत ;WITH RatingLines ... . के साथ करते हैं जो पहले UPDATE . से जुड़ता है बयान, अन्य नहीं। यह निर्माण एक सीटीई बनाता है जो केवल इसके बाद के पहले कथन के लिए दृश्यमान होता है। TN में with common_table_expression (Transact-SQL)<के लिए अधिक स्पष्टीकरण पाया जा सकता है। /ए> . विशेष रूप से रिमार्क्स का यह अंश इस पर प्रकाश डालता है:

अपने SP में सभी कथनों के लिए इस तालिका को ज्ञात करने के लिए, RatingLines के लिए एक तालिका चर या एक अस्थायी तालिका बनाएं बजाय।

एक अस्थायी तालिका का उपयोग करके रूपरेखा इस प्रकार होगी:

Select   RDA.[CTS]        AS [CTS]
              ,RDA.[B_KEY]        AS [B_KEY]
              ,RDA.[H_KEY]        AS [H_KEY]
              ,RDA.[RT_ID]        AS [RT_ID]
              ,RDA.[RT_AVGRATING] AS [RT_AVGRATING]
              ,RDDA.[RTD_COMMENT] AS [RTD_COMMENT]
INTO #RatingLines -- Create #RatingLines as temporary table
From  [DynNavHRS].[HRSDB].[HTL_RATING_ALL_DA]        RDA
Join  [DynNavHRS].[HRSDB].[HTL_RATING_DETAIL_ALL_DA] RDDA
ON    RDA.RT_ID =RDDA.RT_ID
AND   RDDA.[RTD_COMMENT] <> ''
AND   RDA.[B_KEY]='19214642';

-- Throughout the rest of the SP, use #RatingLines as your ratings table; eg:
...
INNER JOIN #RatingLines   RL1
...

-- At the end of the SP, drop the temporary table
DROP TABLE #RatingLines;



  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. MS SQL सर्वर में डेटाबेस मेल सूचनाओं को कॉन्फ़िगर करना

  3. SQL सर्वर में स्थानीय और वैश्विक अस्थायी तालिकाएँ

  4. बड़े डेटासेट से रैंडम सैंपलिंग

  5. SQL सर्वर में sys.objects, sys.system_objects और sys.all_objects के बीच अंतर