2012-02-21 14 views
6

मैं OBJECT_ID के उपयोग बाहर कोशिश कर रहा हूँ और the following entry MSDN में पाया: "। रिटर्न एक स्कीमा-दायरे वाले वस्तु के डेटाबेस वस्तु पहचान संख्या"SQL सर्वर में OBJECT_ID क्या करता है?

डेटाबेस ऑब्जेक्ट पहचान संख्या और स्कीमा स्कॉप्ड ऑब्जेक्ट क्या है। ऐसा लगता है कि मैं शुरुआती से ज्यादा उलझन में हूं।

उत्तर

4

OBJECT_ID का उपयोग सिस्टम बेस टेबल में विशिष्ट रूप से ऑब्जेक्ट की पहचान करने के लिए किया जाता है।

sys.sysschobjs आधार तालिका sys.objects मेटाडेटा दृश्य द्वारा उपयोग की जाने वाली बेस तालिका की प्राथमिक कुंजी है और मेटाडेटा दृश्यों में से कई अन्य में दिखाई देती है। उदाहरण sys.partitions। यदि आप इन विचारों से पूछताछ नहीं कर रहे हैं तो object_id शायद नीचे उपयोगी वस्तु के लिए चेक में उपयोग करते समय बहुत उपयोगी नहीं है।

IF OBJECT_ID('T', 'U') IS NULL 
    /*Table T does not exist or no permissions*/ 

स्कीमा scoped वस्तु एक ही है कि एक स्कीमा (उदाहरण, एक मेज, देखने के लिए, संग्रहीत प्रक्रिया) के अंतर्गत आता है है। एमएसडीएन लेख डीडीएल ट्रिगर में एक गैर स्कीमा स्कोप्ड ऑब्जेक्ट का एक उदाहरण देता है।

यह कोशिश करते हैं और एक स्कीमा निर्दिष्ट करने के लिए एक त्रुटि जब इन

CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/ 
ON DATABASE 
FOR DROP_SYNONYM 
AS 
PRINT 'SomeTrigger' 

गैर स्कीमा scoped वस्तुओं मेटाडाटा अभी भी sys.sysschobjs में संग्रहित है बनाने लेकिन sys.objects ध्यान में रखते हुए दिखाई नहीं देता है।

संबंधित मुद्दे