हम अपने ग्राहकों को एक उपकरण के साथ प्रदान करने जा रहे हैं (अन्य चीजों के साथ) एक नया SQL सर्वर डेटाबेस बनाता है, और मैं उनके द्वारा प्रदान किए गए डेटाबेस नाम पर मूल सत्यापन करने में सक्षम होना चाहता हूं। SQL सर्वर का दस्तावेज़ बताता है कि डेटाबेस नाम में कौन से वर्ण मान्य हैं। हालांकि, दस्तावेज़ीकरण स्पष्ट रूप से गलत है, क्योंकि मैं सफलतापूर्वक डेटाबेस बना सकता हूं जिनके नाम दस्तावेज़ित नियमों का उल्लंघन करते हैं।SQL सर्वर डेटाबेस नाम में कौन से वर्ण मान्य हैं?
CREATE DATABASE के लिए SQL सर्वर के दस्तावेज़ों के अनुसार, डेटाबेस नामों को पहचानकर्ताओं के नियमों का पालन करना होगा; और identifiers के नियम डेटाबेस संगतता स्तर पर निर्भर करते हैं। जब संगतता स्तर 100 है (जो, SQL सर्वर प्रबंधन स्टूडियो के अनुसार, "SQL Server 2008" का अर्थ है), नाम यूनिकोड अक्षर, _
, @
, या #
से प्रारंभ होना चाहिए; इसके बाद एक या अधिक अक्षर, संख्याएं, @
, $
, #
, या _
। दस्तावेज़ीकरण स्पष्ट रूप से बताता है कि एम्बेडेड रिक्त स्थान या विशेष वर्णों की अनुमति नहीं है।
यह, उपलब्ध साक्ष्य का सामना करने में मक्खियों क्योंकि मैं एक डेटाबेस जिसका नाम This & That | "Other"
है बनाने के लिए SQL सर्वर प्रबंधन स्टूडियो का उपयोग कर सकते हैं - जो न केवल शामिल एम्बेडेड रिक्त स्थान (स्पष्ट रूप से मना किया है), लेकिन विशेष वर्ण (|
, "
) जो कि एक फ़ाइल नाम में मान्य नहीं हैं। मैंने जांच की, और डेटाबेस की संगतता स्तर वास्तव में "SQL Server 2008 (100)" है, भले ही इसका नाम उस संगतता स्तर पर अमान्य होने के लिए प्रलेखित किया गया हो।
ओह, मैं भी CREATE DATABASE " "
(हाँ, कि एक भी अंतरिक्ष) है, जो साबित करता है पहला वर्ण करता है कि नहीं अंडरस्कोर, एक पत्र होना जरूरी, हस्ताक्षर, या पाउंड चिह्न पर कर सकते हैं।
तो मुझे लगता है कि मेरा प्रश्न है, क्या हैं SQL सर्वर डेटाबेस नाम में मान्य है? क्या कोई दस्तावेज नियम हैं जो SQL सर्वर के वास्तविक व्यवहार के अनुरूप हैं?
डेटाबेस, तालिका, आदि नाम के लिए अमान्य या अत्यंत असामान्य चरित्र (ओं) का उपयोग करने में क्या मूल्य है? यह सुनिश्चित करने के अलावा कि जो लोग आपके डेटाबेस का उपयोग करना चाहते हैं, उनका नाम शाप दें ... –
यह तय करने के लिए उपयोगकर्ताओं पर निर्भर करेगा कि डेटाबेस को क्या कॉल करना है। अगर वे एक कुटिल नाम चुनना चाहते हैं, तो इस बिंदु पर मेरी समझ यह है कि हम उन्हें रोकना नहीं चाहते हैं। (यह बदल सकता है, लेकिन मैं कम से कम जानना चाहता हूं कि हमें क्या करना है।) –