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

@@ ROWCOUNT - SQL सर्वर में अंतिम कथन से प्रभावित पंक्तियों की संख्या प्राप्त करें

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 . भी अपने आप वापस आ जाएगा .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस में आईडी फ़ील्ड के लिए INT बनाम विशिष्ट-पहचानकर्ता

  2. टी-एसक्यूएल स्प्लिट स्ट्रिंग

  3. SQL सर्वर (T-SQL) में डेटाबेस मेल खाता हटाएं

  4. SQL सर्वर नेमिंग कन्वेंशन पर एक भावनात्मक तार्किक नज़र

  5. बिना वैज्ञानिक संकेतन के SQL सर्वर में फ्लोट को वर्चर में बदलें