मैंने सहकर्मी की स्क्रिप्ट चलाते समय उपरोक्त 'एएनएसआई चेतावनी' संदेश आज देखा (और मुझे नहीं पता कि कई बयानों के कारण चेतावनी दिखाई गई थी)।
अतीत में मैंने इसे नजरअंदाज कर दिया था: मैं खुद को अशक्त करने से बचता हूं और ऐसा कुछ भी जो उन्हें खत्म कर देगा, मेरी किताब में एक अच्छी बात है! हालाँकि, आज शब्द 'सेट' का शाब्दिक अर्थ मुझ पर चिल्लाया और मैंने महसूस किया कि मुझे नहीं पता कि इस संदर्भ में शब्द का अर्थ क्या माना जाता है।
इस तथ्य के आधार पर मेरा पहला विचार, यह ऊपरी मामला है, यह है कि यह SET
कीवर्ड और 'असाइनमेंट' का अर्थ है, जैसे कि
UPDATE <table> SET ...
...ON DELETE SET NULL...
SET IDENTITY_INSERT <table> ON
SQL सर्वर हेल्प के अनुसार, 'ANSI चेतावनियाँ' सुविधा ISO / ANSI SQL-92 पर आधारित है, जिसके लिए युक्ति उप-शीर्षक में 'सेट ऑपरेशन' शब्द का सिर्फ एक उपयोग करती है, इसलिए शीर्षक मामले में, डेटा असाइनमेंट अनुभाग। हालाँकि, त्रुटि संदेश के त्वरित Googling के बाद, मुझे ऐसे उदाहरण दिखाई देते हैं, जिनमें SELECT
कोई असाइनमेंट शामिल नहीं है।
SQL सर्वर चेतावनी के शब्दांकन के आधार पर मेरा दूसरा विचार यह था कि सेट का गणितीय अर्थ निहित है। हालाँकि, मुझे नहीं लगता कि SQL में एकत्रीकरण कड़ाई से एक सेट ऑपरेशन बोल रहा है। यहां तक कि अगर SQL सर्वर टीम इसे एक सेट ऑपरेशन मानती है, तो राजधानियों में 'सेट' शब्द डालने का क्या उद्देश्य है?
Googling के दौरान मैंने SQL सर्वर त्रुटि संदेश देखा:
Table 'T' does not have the identity property. Cannot perform SET operation.
यहां एक ही मामले में 'सेट ऑपरेशन' शब्द केवल IDENTITY_INSERT
संपत्ति के असाइनमेंट को संदर्भित कर सकता है, जो मुझे मेरे पहले विचार पर वापस लाता है।
क्या कोई इस मामले पर कोई प्रकाश डाल सकता है?
SET
हमेशा एक कीवर्ड की तरह पूरे कैप में रहता है
SELECT * FROM sys.messages WHERE text LIKE '%SET operation%'
3 अन्य परिणाम देता है जो सभी SET
कीवर्ड को इंगित करते हैं ।
set operations
की चर्चा करते हुए UNION
और INTERSECT
और EXCEPT
, लेकिन मैं त्रुटि के साथ आने के लिए नहीं मिल सकता है NULL
उन परिस्थितियों में से किसी में। मुझे लगता है कि यह एक विरासत त्रुटि संदेश हो सकता है।