SQL सर्वर में, आप @@ROWCOUNT
. का उपयोग कर सकते हैं सिस्टम फ़ंक्शन अंतिम T-SQL कथन से प्रभावित पंक्तियों की संख्या लौटाता है।
उदाहरण के लिए, यदि कोई क्वेरी 4 पंक्तियाँ लौटाती है, तो @@ROWCOUNT
4 वापस आ जाएगा।
उदाहरण 1 - डेटा चुनना
यह कैसे काम करता है, यह दिखाने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT * FROM Dogs;
SELECT @@ROWCOUNT;
परिणाम:
+---------+-----------+-----------+ | DogId | DogName | GoodDog | |---------+-----------+-----------| | 1 | Fetch | 0 | | 2 | Fluffy | 0 | | 3 | Wag | 0 | +---------+-----------+-----------+ (3 rows affected) +--------------------+ | (No column name) | |--------------------| | 3 | +--------------------+ (1 row affected)
इस मामले में, मेरा SELECT
स्टेटमेंट ने 3 पंक्तियाँ दीं, और इसलिए @@ROWCOUNT
लौटा 3.
उदाहरण 2 - डेटा अपडेट करना
यहां @@ROWCOUNT
. का उपयोग करने का एक उदाहरण दिया गया है एक UPDATE
के साथ यह परीक्षण करने के लिए कथन कि कोई पंक्ति अद्यतन की गई थी या नहीं।
UPDATE Dogs
SET GoodDog = 1
WHERE DogId = 4
IF @@ROWCOUNT > 0
PRINT 'Your dog will be rewarded accordingly';
ELSE
PRINT 'A dog outside the system cannot be a good dog'
GO
परिणाम:
(0 rows affected) A dog outside the system cannot be a good dog
इस स्थिति में, कोई पंक्तियाँ अपडेट नहीं की गईं क्योंकि तालिका में DogId मौजूद नहीं था। हम @@ROWCOUNT
. का उपयोग करने में सक्षम थे एक IF
. के साथ उपयोगकर्ता को उचित संदेश वापस करने के लिए कथन।
यहाँ यह फिर से है, लेकिन इस बार कुत्ता मौजूद है।
UPDATE Dogs
SET GoodDog = 1
WHERE DogId = 1
IF @@ROWCOUNT > 0
PRINT 'Your dog will be rewarded accordingly';
ELSE
PRINT 'A dog outside the system cannot be a good dog'
GO
परिणाम:
(1 row affected) Your dog will be rewarded accordingly
अत्यंत बड़ा डेटासेट?
यदि आपको लगता है कि किसी कथन से प्रभावित पंक्तियों की संख्या 2 अरब से अधिक होने जा रही है, तो ROWCOUNT_BIG()
का उपयोग करें इसके बजाय।
आप इसे उसी तरह उपयोग कर सकते हैं जैसे @@ROWCOUNT
उपयोग किया जाता है।
UPDATE Dogs
SET GoodDog = 1
WHERE DogId = 4
IF ROWCOUNT_BIG() > 0
PRINT 'Your dog will be rewarded accordingly';
ELSE
PRINT 'A dog outside the system cannot be a good dog'
GO
परिणाम:
(0 rows affected) A dog outside the system cannot be a good dog
जब @@ROWCOUNT
रीसेट किया गया है
कथन जैसे USE
, SET <option>
, DEALLOCATE CURSOR
, CLOSE CURSOR
, PRINT
, RAISERROR
, BEGIN TRANSACTION
, या COMMIT TRANSACTION
@@ROWCOUNT
रीसेट करें 0
. का मान ।
SELECT @@ROWCOUNT
चल रहा है 0
. भी अपने आप वापस आ जाएगा .