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

मैं एक संग्रहीत प्रक्रिया के भीतर एक रिकॉर्डसेट पर कैसे पुनरावृति कर सकता हूं?

आपको रिकॉर्ड सेट के माध्यम से लूप करने के लिए एक कर्सर बनाने की आवश्यकता है।

उदाहरण तालिका:

CREATE TABLE Customers
(
    CustomerId INT NOT NULL PRIMARY KEY IDENTITY(1,1)
    ,FirstName Varchar(50) 
    ,LastName VARCHAR(40)
)

INSERT INTO Customers VALUES('jane', 'doe')
INSERT INTO Customers VALUES('bob', 'smith')

कर्सर:

DECLARE @CustomerId INT, @FirstName VARCHAR(30), @LastName VARCHAR(50)

DECLARE @MessageOutput VARCHAR(100)

DECLARE Customer_Cursor CURSOR FOR 
    SELECT CustomerId, FirstName, LastName FROM Customers


OPEN Customer_Cursor 

FETCH NEXT FROM Customer_Cursor INTO
    @CustomerId, @FirstName, @LastName

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @MessageOutput = @FirstName + ' ' + @LastName



    RAISERROR(@MessageOutput,0,1) WITH NOWAIT

    FETCH NEXT FROM Customer_Cursor INTO
    @CustomerId, @FirstName, @LastName
END
CLOSE Customer_Cursor
DEALLOCATE Customer_Cursor

यहां MSDN का लिंक दिया गया है कि उन्हें कैसे बनाया जाए।

http://msdn.microsoft.com/en-us/library/ms180169 .aspx

यही कारण है कि मैंने आउटपुट के लिए PRINT के बजाय राइज़ एरर का उपयोग किया।
http://structdsight.com/2014/11/24/wait-wait-dont-tell-me-on-second- सोचा/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अगली पंक्ति पर जाएं जब किसी कॉलम में कुछ मान हो (एसक्यूएल सर्वर 2008)

  2. यह एसक्यूएल स्टेटमेंट (2 टेबल जॉइन के साथ) को पूरा होने में 5 मिनट क्यों लगते हैं?

  3. रिकॉर्ड में फ़ील्ड से SQL सर्वर 2008 स्प्लिट स्ट्रिंग

  4. एक अस्थायी तालिका में कैसे सम्मिलित करें, जो कि RESTORE FILELISTONLY / HEADERONLY / VERIFYONLY द्वारा दी गई जानकारी है

  5. मैं SQL सर्वर में संग्रहीत कार्यविधि से पैरामीटर की सूची कैसे प्राप्त कर सकता हूं?