SQL सर्वर 2005 में, पंक्तियों को हटाने का एक तरीका है और बताया जा रहा है कि वास्तव में हटा दिए गए थे?SQL सर्वर संग्रहीत प्रक्रिया में हटाए गए पंक्तियों की संख्या की गणना
मैं उसी स्थिति के साथ select count(*)
कर सकता था, लेकिन मुझे इसे पूरी तरह भरोसेमंद होने की आवश्यकता है।
मेरा पहला अनुमान @@ROWCOUNT
चर का उपयोग करना था - लेकिन यह सेट नहीं है, उदा।
delete
from mytable
where datefield = '5-Oct-2008'
select @@ROWCOUNT
हमेशा एक 0.
MSDN पता चलता है OUTPUT
निर्माण, उदा रिटर्न
delete from mytable
where datefield = '5-Oct-2008'
output datefield into #doomed
select count(*)
from #doomed
यह वास्तव में एक वाक्यविन्यास त्रुटि के साथ विफल रहता है।
कोई विचार?
मैंने सोचा था कि मैंने यह कोशिश की थी - लेकिन स्पष्ट रूप से मैंने ऐसा नहीं किया क्योंकि यह एक आकर्षण की तरह काम करता था - धन्यवाद। – Unsliced
एमएसडीएन का कहना है कि एसईटी एनओसीएटी प्रिंट-आउट को प्रभावित करता है। यह '@@ ROWCOUNT' को क्यों प्रभावित करता है? क्या यह हमेशा पंक्तियों की संख्या को वापस नहीं लेना चाहिए (ओपी में)? – noelicus
*** यह अनुमान है *** मुझे लगता है कि ऐसा इसलिए है क्योंकि एनओसीएटी सेटिंग को सिस्टम को बताता है कि चीजों को और अधिक कुशल बनाने के लिए इसे संख्याओं का ट्रैक रखने की आवश्यकता नहीं है – wcm