दिलचस्प पोस्ट
फ़ायरफ़ॉक्स, सफारी और क्रोम के साथ क्लिपबोर्ड पर टेक्स्ट कॉपी / रखें क्या मैं एक चरित्र के यूनिकोड मूल्य या पीएचपी के साथ वीआईएस को प्राप्त कर सकता हूं? तत्व को किसी अन्य तत्व में कैसे स्थानांतरित करना है? Serialization और deserialization के दौरान JSON संपत्ति के विभिन्न नाम मैं कक्षा से स्टोरीबोर्ड प्रोग्राम को कैसे लोड कर सकता हूं? संसाधन ड्रॉबल की सूची कैसे प्रदर्शित करें चयन 2 लटकती लेकिन उपयोगकर्ता द्वारा नए मानों की अनुमति है? एंड्रॉइड.एफ़। फ्रेगमेंट और एंड्रॉइड। Support.v4.app.Fragment के बीच का अंतर स्टोरीबोर्ड आईडी क्या है और मैं इसका उपयोग कैसे कर सकता हूं? MATLAB लिंक की गई सूची जावास्क्रिप्ट किसी भी वेब पेज के स्रोत को पढ़ सकता है? स्विफ्ट क्लास आत्मनिरीक्षण और जेनेरिक स्विंग – लेबल अपडेट करें डेटाबेस के साथ जेटीबल में डेटा कैसे भरें? ASP.NET वेब एपीआई में एकाधिक प्राप्त विधियों के साथ रूटिंग

एमएस एसक्यूएल सर्वर में आरक्षित शब्द / खोजशब्दों वाले टेबल नाम बनाना

क्या पहले से ही खोजशब्दों का नाम मेरे डेटाबेस तालिकाओं का नाम होना ठीक है? मेरे मामले के लिए, मैं तालिका का नाम देने की कोशिश कर रहा हूं जो मेरे उपयोगकर्ता को पकड़ लेगा। मैंने इसे यूज़र नाम दिया है लेकिन यह एसक्यूएल सर्वर मैनेजमेंट स्टूडियो में गुलाबी के रूप में दिख रहा है इसलिए मैं इसकी मौजूदा सिस्टम टेबल या कीवर्ड मान रहा हूं। आपके सुझाव के लिए धन्यवाद।

आरक्षित खोजशब्दों की आधिकारिक सूची: आरक्षित कूटशब्द (ट्रांसएक्ट-एसक्यूएल)

Solutions Collecting From Web of "एमएस एसक्यूएल सर्वर में आरक्षित शब्द / खोजशब्दों वाले टेबल नाम बनाना"

यह तीन बार दोहराएं:

यह मत करो, मैं आरक्षित शब्दों का उपयोग नहीं करूँगा!

आप मुझे धन्यवाद देंगे!

आप कीवर्ड के नामों के समान तालिका बना सकते हैं। यदि आप तालिका का "उद्धरण" नाम दें, तो उसे काम करना चाहिए। एसक्यूएल सर्वर में डिफ़ॉल्ट उद्धरण वर्ग कोष्ठक हैं: []

 CREATE TABLE [dbo].[user]( [id] [bigint] NOT NULL, [name] [varchar](20) NOT NULL ) ON [PRIMARY] 

हां यह ठीक है। आपके प्रश्नों में, आप [और] अपने टेबल नाम के आसपास रख सकते हैं ताकि SQL सर्वर जानता है कि आप किसी तालिका का संदर्भ दे रहे हैं – अर्थात

 CREATE TABLE [User] ... SELECT * FROM [User] 

आप ऐसा करने के लिए [उपयोगकर्ता] का उपयोग कर सकते हैं। यदि संभव हो तो किसी तालिका नाम का उपयोग करें जो किसी कीवर्ड के साथ संघर्ष नहीं करता है, भ्रम और बगों से बचने के लिए

स्ट्रिंग्स के लिए 'एकल उद्धरण' का उपयोग करें, और स्तंभ नामों के लिए "दोहरे उद्धरण" का उपयोग करें।

उदाहरण:

 INSERT INTO AccountMovement ("Date", Info) VALUES ('2012/03/17', 'aa'), ('2012/03/17', 'bb'), ('2012/03/17', 'cc'), ('2012/03/17', 'dd') 

मैं शिविर में बैठता हूं जो कहता है कि तालिका नाम बहुवचन होना चाहिए, इसलिए आपके मामले में यह उपयोगकर्ता होगा।

मुझे यह सम्मेलन पसंद है क्योंकि यह मेरे लिए समझ में आता है आपके पास उपयोगकर्ताओं का संग्रह है, इसलिए आपकी तालिका को कॉल करें आगे नीचे धारा यदि आप एक indvidual पंक्ति है कि फिर से नामित एक वस्तु उपयोगकर्ता आबाद बाहर खींचने के लिए

यदि आपका सम्मेलन तालिका नामों के लिए एकवचन के उपयोग को अलग-अलग उदाहरणों का उपयोग करने का सुझाव देता है: सदस्य, क्लाइंट आदि।

RacerX का जवाब भी देखें!

जैसा कि पहले बताया गया है कि अगर आप [ब्रैकट] नाम का प्रयोग करते हैं तो टेक्निकल ठीक है।

एमएस क्वेरी के लिए, मैंने पाया है कि डबल कोट्स क्वेरी में पूरी तरह से काम करती हैं।

 select T1."Reference" from MyTable T1 

जैसा कि बताया गया है, आप नाम का हवाला देते हुए इसे कर सकते हैं। बेशक, आपको किसी भी समय इसका नाम देने के लिए नाम भी देना होगा – मुझ पर भरोसा, यह पुराना वास्तविक त्वरित हो जाता है

एक तरफ, सिर्फ इसलिए कि SSMS वाक्यविन्यास रंगों का शब्द का जरूरी अर्थ यह नहीं है कि यह एक आरक्षित शब्द है एसक्यूएल इस तरह परेशान हो सकता है 😉

तालिका और स्तंभ नामों (या सामान्य में बेहतर ऑब्जेक्ट नाम) के लिए मूल नियम:

एक आरक्षित शब्द के समान, या समान के समान, कुछ भी उपयोग न करें केवल A-Za-z0- 9 और अंडरस्कोर का उपयोग करें। विशेष रूप से रिक्त स्थान का उपयोग नहीं करते हैं केवल उन नामों का उपयोग करें जिन्हें बचने की आवश्यकता नहीं है, और फिर एक सतत परीक्षण के रूप में भागने का उपयोग न करें।

आप, और जो कोई आपके साथ काम करता है, या कभी भी आपके कोड पर काम करेगा, उसको उत्तेजना की आवश्यकता नहीं है

जैसा कि हर कोई ने कहा है ऐसा मत करो; हालांकि, मैं एक ही नाव में था मेरे पास एक नियम है जो कहता है कि मेरे सारे टेबल एकवचन रूप में जमा हुए हैं संगठन नहीं संगठनों, संपत्ति नहीं परिसंपत्तियों की संपत्तियाँ कई भाग आदि हैं।

अच्छी तरह से मेरे पास एक उपयोगकर्ता टेबल है इसलिए मैं इसे क्या कहूं? मैं इसे बचने के लिए समाप्त [उपयोगकर्ता]। अब मुझे इस निर्णय पर खेद है क्योंकि मैं हमेशा टेबल से बचने को भूल रहा हूं; हालांकि, मैं अभी तक एक बेहतर नाम नहीं आया हूं: सदस्य अग्रणी उम्मीदवार है

अच्छा विचार नहीं – विभिन्न अच्छे कारणों के लिए

अधिक कारण क्यों नहीं 1) आरक्षित नामों के साथ स्पष्ट संभव संघर्ष 2) यदि आप दो साल में एक वैश्विक रूप से अपने कोड की जगह लेना चाहते हैं तो "उपयोगकर्ता" किसी प्रपत्र फ़ील्ड में या कहीं भी आप सामान्य नामों का उपयोग करते समय खराब हो जाते हैं 3) यदि आपको अपने कोड में "उपयोगकर्ता" का उपयोग करने वाले अवसरों की खोज करने की आवश्यकता है – आप जानते हैं कि यह कहां है (हमारे पास एक मिलियन लाइनों की कोड है, यह हमें मार देगा)।

हमने क्या किया है 1) प्रत्येक तालिका नाम में ऑब्जेक्ट के लिए O_nnn की तरह एक अद्वितीय शुरुआत है, वित्त डेटा के लिए F_nnn … हम उसी तरह लागू किए हैं जैसे opp_created जैसे अवसरों के लिए तारीख पर बनाया गया था, SUSR_RID एक बिक्री फ़ंक्शन बनाम उपयोगकर्ता आईडी को संदर्भित करने के लिए बनाम OPUSR_RID एक उपयोगकर्ता के लिए एक परिचालन संदर्भ … 2) उपसर्ग से अधिक के रूप में हम संभव के रूप में O_FlightArrivalTime और नहीं O_FltAT जैसे संभव नाम के रूप में उपयोग करते हैं आज के डाटाबेस में लंबे नाम के साथ कोई प्रदर्शन गिरावट नहीं दिखाया गया है। 3) अब जब OF_FlightArrivalTime को एक फॉर्मफील्ड नाम के रूप में प्रयोग किया जाता है तो आप एसोसिएशन को आसानी से मिलते हैं लेकिन ओ_ एफ के लिए एक वैश्विक खोज … केवल डीबी फील्ड, ओफ़आईएफ के लिए एक खोज … फार्म फ़ील्ड और डीपी …. दोनों ही मिलेगा ।

मैं निश्चित रूप से एक आरक्षित कीवर्ड का उपयोग करने की सलाह दूंगा जैसे आप कर रहे हैं जिस तरह से हमारे डेटाबेस को डिज़ाइन किया गया है, वह इस तरह से कुछ भी होने से रोकने के लिए डेटाबेस ऑब्जेक्ट नामों को प्रीफ़िक्स करना है उदाहरण के लिए, यहां एक त्वरित परिभाषा है कि मैं कैसे 'उपयोगकर्ता' तालिका बना सकता हूं:

 CREATE TABLE tblUser ( intUserId INT ,vchUsername VARCHAR(255) ,vchEmailAddress VARCHAR(255) ,bitIsAccountEnabled BIT ,dteUpdated DATETIME ,dteCreated DATETIME ,intUpdateUserId INT ) 

इस तरह जब मैं प्रश्न लिख रहा हूँ मुझे समझ में कोई समस्या नहीं है कि मैं किस प्रकार की डेटा प्रकार से काम कर रहा हूं। मुझे तालिका नामों में आरक्षित खोजशब्दों के बारे में भी चिंता करने की आवश्यकता नहीं है I