Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में एक ऑटो इंक्रीमेंट प्राथमिक कुंजी को कैसे परिभाषित करें

MySQL, PostgreSQL, Oracle, और कई अन्य रिलेशनल डेटाबेस के समान, SQL सर्वर का सबसे अच्छा उपयोग तब किया जाता है जब अधिकांश डेटाबेस तालिकाओं के लिए अद्वितीय प्राथमिक कुंजी असाइन की जाती है।

संख्यात्मक, स्वत:वृद्धि हुई प्राथमिक कुंजियों का उपयोग करने के कई फायदे हैं, लेकिन सबसे प्रभावशाली लाभ प्रश्नों को निष्पादित करते समय तेज गति और हजारों रिकॉर्ड के माध्यम से खोज करते समय डेटा-स्वतंत्रता है, जिसमें तालिका में कहीं और अक्सर परिवर्तित डेटा हो सकता है। एक सुसंगत और अद्वितीय संख्यात्मक पहचानकर्ता के साथ, एप्लिकेशन इन तेज़ और अधिक विश्वसनीय प्रश्नों का लाभ उठा सकते हैं।

मूल तालिका निर्माण

एक बार अपने SQL सर्वर से कनेक्ट हो जाने पर, आप आमतौर पर CREATING . द्वारा प्रारंभ करते हैं एक नई तालिका जिसमें वह फ़ील्ड शामिल है जिसे आप अपनी बढ़ी हुई प्राथमिक कुंजी के रूप में उपयोग करना चाहते हैं। हमारे उदाहरण के लिए, हम आजमाए हुए और सही id . के साथ बने रहेंगे फ़ील्ड:

CREATE TABLE books (
  id              INT           NOT NULL,
  title           VARCHAR(100)  NOT NULL,
  primary_author  VARCHAR(100),
);

यहाँ समस्या यह है कि हमारे पास अपनी id . को नियंत्रित करने का कोई तरीका नहीं है खेत। जब कोई नया रिकॉर्ड डाला जाता है, तो हमें न केवल मैन्युअल रूप से id . के लिए एक मान दर्ज करना होगा , लेकिन हमें उस id . को सत्यापित करने का प्रयास करने के लिए समय से पहले एक प्रश्न करना होगा value पहले से मौजूद नहीं है (एक साथ कई कनेक्शनों के साथ काम करते समय लगभग असंभव)।

पहचान और प्राथमिक कुंजी बाधाओं का उपयोग करना

समाधान SQL सर्वर द्वारा प्रदान किए गए दो बाधा विकल्पों का उपयोग करने के लिए निकला है।

पहला है PRIMARY KEY , जैसा कि नाम से पता चलता है, निर्दिष्ट कॉलम को तालिका के लिए पूरी तरह से अद्वितीय इंडेक्स के रूप में व्यवहार करने के लिए मजबूर करता है, जिससे तेजी से खोज और प्रश्नों की अनुमति मिलती है।

जबकि SQL सर्वर केवल एक PRIMARY KEY की अनुमति देता है एक तालिका को निर्दिष्ट बाधा, वह PRIMARY KEY एक से अधिक कॉलम के लिए परिभाषित किया जा सकता है। बहु-स्तंभ परिदृश्य में, अलग-अलग स्तंभों में डुप्लिकेट, गैर-अद्वितीय मान हो सकते हैं, लेकिन PRIMARY KEY बाधा यह सुनिश्चित करती है कि प्रत्येक संयोजन सीमित मूल्यों की संख्या वास्तव में हर दूसरे संयोजन के सापेक्ष अद्वितीय होगी।

पहेली का दूसरा भाग है IDENTITY बाधा, जो SQL सर्वर को निर्दिष्ट कॉलम के भीतर संख्यात्मक मान को स्वतः बढ़ाने के लिए सूचित करती है जब भी कोई नया रिकॉर्ड INSERTED होता है . जबकि IDENTITY कर सकते हैं संख्यात्मक seed के दो तर्क स्वीकार करें जहां से मान शुरू होंगे और साथ ही increment , ये मान आमतौर पर IDENTITY . के साथ निर्दिष्ट नहीं होते हैं बाधा और इसके बजाय डिफ़ॉल्ट के रूप में छोड़ दिया जाता है (दोनों डिफ़ॉल्ट रूप से 1 )।

अपनी उंगलियों पर इस नए ज्ञान के साथ, हम अपने पिछले CREATE TABLE . को फिर से लिख सकते हैं हमारी दो नई बाधाओं को जोड़कर बयान।

CREATE TABLE books (
  id              INT           NOT NULL    IDENTITY    PRIMARY KEY,
  title           VARCHAR(100)  NOT NULL,
  primary_author  VARCHAR(100),
);

यही सब है इसके लिए। अब id हमारी books . का कॉलम प्रत्येक INSERT . पर तालिका स्वचालित रूप से बढ़ जाएगी और id फ़ील्ड को एक अद्वितीय मान होने की भी गारंटी है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे जांचें कि SQL सर्वर में एक कंप्यूटेड कॉलम "जारी" है या नहीं?

  2. SQL सर्वर प्रदर्शन निगरानी के बारे में शीर्ष 10 अक्सर पूछे जाने वाले प्रश्न

  3. टी-एसक्यूएल का उपयोग करके SQL सर्वर इंस्टेंस में बहिष्कृत सुविधाओं को कैसे सूचीबद्ध करें

  4. SQL सर्वर में एक स्ट्रिंग को कैसे विभाजित करें

  5. SQL कनेक्शन स्ट्रिंग में कस्टम विशेषताएँ कैसे जोड़ें?