जवाबों:
आप कर सकते हैं , लेकिन मैं नहीं करूंगा। आपको हमेशा डीबी नाम को चौकोर कोष्ठक जैसे [MyApp.Sales] के साथ लपेटना होगा।
इसलिए पुनरावृत्ति करने के लिए: यदि आप अपने विवेक को महत्व देते हैं, तो ऐसा न करें।
मुझे लगता है कि तकनीकी रूप से भी यह बहुत बुरा विचार है।
इन वर्षों में मुझे पता चला कि कई लोगों को चार-भाग के नामकरण सम्मेलन को समझने में परेशानी होती है, हालांकि यह बहुत स्पष्ट लगता है:
server_name.database_name.schema_name.object_name
सोचिए अगर वे ऐसा कुछ देखें तो क्या होगा:
MAIN-SQL.[MyApp.Sales].hr.CompetitorsProducts
या:
[MAIN-SQL\EXPRESS].[MyApp.Sales].sch_HR.[Products From.Our-Competitors]
चीजों को सरल रखना महत्वपूर्ण है।
मामले में कोई और इस सवाल का सामना करता है ...
ध्यान रखें कि यह केवल एक बुरा विचार नहीं है क्योंकि उपयोगकर्ता भ्रमित हो सकते हैं, बल्कि इसलिए भी कि कुछ उपकरण भ्रमित हो सकते हैं।
यहां तक कि खुद Microsoft को भी इससे समस्या है। यदि आप अपने डेटाबेस को Microsoft क्वेरी (ODBC के माध्यम से) एक्सेल शीट से कनेक्ट करने का प्रयास करते हैं, तो आपको एक कॉन्फ़िगरेशन विज़ार्ड मिलता है, जिससे आप उस डेटाबेस को चुन सकते हैं जिसे आप कनेक्ट करना चाहते हैं। हालाँकि, एक डेटाबेस जिसमें एक डॉट होता है, यह बताते हुए एक त्रुटि का उत्पादन करेगा कि सर्वर नहीं मिला। ऐसा लगता है कि विज़ार्ड जाँच नहीं करता है कि मूल्यों को भागने की जरूरत है और नेत्रहीन पहचानकर्ताओं को अंधा कर देते हैं।
बेशक वर्कअराउंड हैं, लेकिन आप शुरुआत से ऐसा न करके खुद को कुछ परेशानी से बचा लेते हैं।
डेटाबेस नामों, प्रकाशन नामों, उपयोगकर्ता नामों में अवधि का उपयोग न करें। और मैं दृढ़ता से नाम (स्तंभ, तालिका, दृश्य, डेटाबेस, आदि) में एक अवधि का उपयोग न करने की सलाह देता हूं।
अपडेट: मैं पुष्टि कर सकता हूं, कि माइनस, डैश "-" सिम्मिलर मुद्दों का कारण बनता है।
यहाँ होता है:
SQL सर्वर सिस्टम संग्रहित प्रक्रियाओं की तरह आंतरिक उपयोग के लिए स्क्रिप्ट का उपयोग करता है। जैसा कि पहले ही यहाँ उल्लेख किया गया है, आपके द्वारा उपयोग की जाने वाली आज्ञाएँ कभी-कभी आपको नाम को कोष्ठक में रखने के लिए बाध्य करेंगी और यह (गंभीरता से microsoft?) नहीं है (हमेशा) संग्रहीत प्रक्रियाओं के उपयोग के लिए ठीक है ।
वास्तव में, मैं अब अवज्ञा संशोधन को साफ करने में सक्षम नहीं हूं क्योंकि संग्रहीत प्रक्रिया सभी डेटाबेस के माध्यम से पुनरावृत्त होती है और डेटाबेस के नामों को स्पष्ट रूप से नहीं बचती है। यह पुनरावृत्ति यह है कि जटिल मैं इसे 8 से अधिक एसपी में पैच करने में सक्षम नहीं था।
प्लस मैं प्रतिकृति संघर्षों को संपादित करने के लिए एमएमसी या स्क्रिप्ट का उपयोग करने में सक्षम नहीं हूं । यदि आपके पास एक (One!) डेटाबेस है, जिसके नाम के अंदर एक डॉट है, तो ये समस्याएँ हर डेब्यू, हर प्रकाशन पर घटित होंगी।
ये मेरे द्वारा की जाने वाली घटनाएँ हैं। यदि SQL ठीक है, तो जटिल SQL क्रियाएँ sql भाषा में संसाधित होती हैं और ठीक काम करेंगी।
यदि आप अपने डेटाबेस को Microsoft क्वेरी (ODBC के माध्यम से) एक्सेल शीट से कनेक्ट करने का प्रयास करते हैं, तो आपको एक कॉन्फ़िगरेशन विज़ार्ड मिलता है, जिससे आप उस डेटाबेस को चुन सकते हैं जिसे आप कनेक्ट करना चाहते हैं। - aKzenT
ये त्रुटियां अक्सर 3rd पार्टी सॉफ्टवेयर में पाई जा सकती हैं, इसलिए कभी भी sql सर्वर पर किसी भी चीज के नाम में डॉट्स का उपयोग कभी न करें।
समान सौदा: विदेशी कुंजी नाम में कोई डॉट नहीं होना चाहिए।
मैंने पाया कि यदि आपको ऐसे नाम का नाम बदलने की आवश्यकता है, तो आपको sp_rename
काम करने के लिए कोष्ठक की आवश्यकता होगी (क्योंकि जैसा कि आप एक विदेशी कुंजी का नाम बदलते हैं, आपको स्कीमा को निर्दिष्ट करने की आवश्यकता है)।
उदाहरण:
sp_rename '[MySchema].[MyFKName.With.Dots]' 'NewFKName' 'OBJECT'
यदि आप कोष्ठक भूल जाते हैं, तो आपको एक त्रुटि मिलती है: 15225
हमारे आपूर्तिकर्ताओं में से एक ने स्कीमा नाम शुरू करने के लिए चुना है: [System.Activities.DurableInstancing]। यह हमारे डटालोड टूल को तोड़ दिया है, इसलिए अब हमें उनके अजीब से निपटने के लिए और विकास करना है। बस यह मत करो। का उपयोग '-'।
-
जब आप अंडरस्कोर का उपयोग कर सकते हैं तो डैश का उपयोग क्यों करना चाहिए_
और चौकोर कोष्ठक में नाम बिल्कुल भी संलग्न नहीं करना चाहिए?