Linkनिष्पादित अगर @@ rowcount> 0 @@ rowcount को 0 पर रीसेट करता है क्यों?
@@ ROWCOUNT
declare @row int select 100 if @@rowcount>0 set @[email protected]@rowcount ...
ऊपर 0 क्योंकि जैसे ही
if @@rowcount>0
के रूप में वापस आ जाएगी पिछले चयन, सम्मिलित करें, अद्यतन के लिए प्रभावित पंक्तियों की संख्या को सूचित या बयान को हटाने के लिए प्रयोग किया जाता है निष्पादित किया गया है यह 0 पर रीसेट है क्योंकि यह किसी भी पंक्ति को वापस नहीं करता है। तो हमेशा के लिए असाइन चर पहले
बयान रीसेट if @@rowcount>0
क्यों करता है 0 को @@rowcount
? @@rowcount
का मूल्य केवल चयन, सम्मिलित, अद्यतन और बयान हटाकर प्रभावित नहीं है?
धन्यवाद
1 - जहां तक मैं इसे समझता हूं, कारण @@ rowcount 1 और 0 नहीं लौटा है, क्योंकि "SELECT @row, @@ rowcount" क्वेरी एक पंक्ति को प्रभावित करती है। लेकिन मैंने सोचा कि शब्द "प्रभावित पंक्तियों की संख्या" का उपयोग तब किया गया था जब डीबी टेबल में वास्तविक पंक्तियों के साथ एसक्यूएल स्टेटमेंट का सामना किया गया था, लेकिन आपका चयन कथन किसी भी पंक्ति तक नहीं पहुंचता है, तो @@ rowcount 1 क्यों लौटाता है? – user702769
2 - उम्मीद है कि यह प्रश्न कुछ समझ में आता है - अगर हम नाइटपिक करना चाहते थे, तो क्या @@ rowcount पंक्तियों की संख्या को वापस कथन से प्रभावित नहीं करता है? यदि ऐसा है, तो "SELECT @row, @@ rowcount" को @@ rowcount के लिए 0 वापस करना चाहिए, क्योंकि चयन कथन अभी तक पूरी तरह से पूरा नहीं हुआ है जब यह @@ rowcount से मूल्य प्राप्त करता है, और ऐसी कोई पंक्तियां प्रभावित नहीं हुई हैं अभी तक ?! – user702769
@ user702769: @ SELECT @row, @@ rowcount' में @@ rowcount 'set @row = @@ rowcount;' से प्रभावित है। एक चयन इसे अपने @@ rowcount – gbn