जब आप SQL सर्वर में एक परिकलित स्तंभ बनाते हैं, तो स्तंभ के लिए आपके द्वारा उपयोग किया जाने वाला व्यंजक या तो नियतात्मक या गैर-निर्धारणात्मक होगा। इसके निहितार्थ हो सकते हैं, जैसे कि आप इसे किसी अनुक्रमणिका में उपयोग कर सकते हैं या नहीं या इसे "निरंतर" के रूप में फ़्लैग कर सकते हैं।
एक नियतात्मक स्तंभ वह होता है जो इनपुट मानों के एक विशिष्ट सेट के लिए समान मान लौटाता है और डेटाबेस की समान स्थिति देता है। एक नॉनडेटर्मिनिस्टिक कॉलम एक ही इनपुट दिए जाने पर भी एक अलग मान वापस कर सकता है, भले ही डेटाबेस स्थिति समान रहे। उदाहरण के लिए, एक फ़ंक्शन जो वर्तमान तिथि लौटाता है, वह गैर-निर्धारिती है, क्योंकि यह प्रत्येक दिन एक अलग मान लौटाएगा।
आप COLUMNPROPERTY()
. का उपयोग कर सकते हैं IsDeterministic
. के साथ कार्य करें यह पता लगाने के लिए तर्क कि परिकलित कॉलम नियतात्मक है या नहीं।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT COLUMNPROPERTY( OBJECT_ID('dbo.Products'), 'TotalValue', 'IsDeterministic') AS IsDeterministic;
परिणाम:
+-------------------+ | IsDeterministic | |-------------------| | 1 | +-------------------+
इस मामले में TotalValue
dbo.Products
. से कॉलम तालिका है नियतात्मक। यदि ऐसा नहीं होता, तो परिणाम 0
. होता ।
IsDeterministic
प्रॉपर्टी केवल परिकलित कॉलम और व्यू कॉलम पर लागू होती है।