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

एक ब्लॉक लूप के रूप में सीटीई का उपयोग करना?

सामान्य तौर पर आप नहीं कर सकते।

यह केवल अगले कथन के लिए मान्य है। यदि आप परिभाषा . का पुन:उपयोग करना चाहते हैं तो आप उसी परिभाषा के साथ एक दृश्य को परिभाषित कर सकते हैं एकाधिक कथनों के लिए या परिणामों . का पुन:उपयोग करने के लिए इसे स्वयं एक अस्थायी तालिका/तालिका चर में परिवर्तित करें ।

हालांकि आपके प्रश्न के विशिष्ट मामले के लिए आप यह सब एक ही कथन में कर सकते हैं।

WITH cte
     AS (SELECT 1 AS n
         UNION ALL
         SELECT n + 1
         FROM   cte
         WHERE  n + 1 <= 10)
INSERT INTO tbl1
            (id)
OUTPUT      INSERTED.id
INTO tbl2(id)
SELECT n
FROM   cte 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं nvarchar (अधिकतम) पर बाधा क्यों नहीं डाल सकता?

  2. SQL का उपयोग कर फ़ाइल का एक्सटेंशन प्राप्त करें?

  3. एक ही पंक्ति में सभी बच्चों के साथ एकल माता-पिता प्राप्त करें

  4. UPDLOCK, होल्डलॉक के बारे में उलझन में

  5. XML स्कीमा से SQL सर्वर तालिका स्कीमा कैसे बनाएं? (.NET और विजुअल स्टूडियो 2008 के साथ)