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

SQL सर्वर में अद्वितीय बाधा क्या है - SQL सर्वर / TSQL ट्यूटोरियल भाग 95

SQL सर्वर में अद्वितीय बाधा क्या है:

SQL सर्वर में अद्वितीय बाधा कॉलम या कॉलम पर बनाई जाती है ताकि कॉलम/एस को केवल अद्वितीय मान स्वीकार करने के लिए प्रतिबंधित किया जा सके।
एक कॉलम में केवल एकल शून्य मान की अनुमति है जिस पर अद्वितीय बाधा बनाई गई है।

परिदृश्य:

मान लें कि आप बीमा कंपनी के लिए SQL सर्वर डेवलपर के रूप में काम कर रहे हैं, आपको dbo बनाने के लिए कहा जाता है। ग्राहक तालिका जिसमें एक कॉलम SSN होना चाहिए और उसे हमेशा अद्वितीय मान स्वीकार करना चाहिए।


समाधान:

उपरोक्त परिदृश्य के लिए, हम SSN कॉलम पर Unique Constraint का उपयोग कर सकते हैं। कॉलम पर अद्वितीय बाधा बनाने के लिए नीचे स्क्रिप्ट का उपयोग किया जा सकता है।
USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [SSN] VARCHAR(11),
    Unique(SSN)
) 

--Insert sample records in table 
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
,('Aamir','Shahzad','000-00-0001')
,('Aamir','Shahzad','000-00-0002')
 
 
dbo में डेटा की जांच करें। क्वेरी का चयन करके ग्राहक तालिका का उपयोग करें
एसक्यूएल सर्वर में एक कॉलम पर अद्वितीय बाधा कैसे जोड़ें

आइए सिस्टम दृश्य का उपयोग यह जांचने के लिए करते हैं कि क्या Unique Constraint जोड़ा गया है और SQL सर्वर ने इसे क्या नाम दिया है।
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
SQL सर्वर में Unique Constraint कैसे जोड़ें
 जैसा कि हम देख सकते हैं कि SQL सर्वर ने Unique Constraint को "UQ__Customer__CA1E8E3C7E8AFCB1" नाम दिया है। अगर हम कुछ नामकरण परंपरा को लागू करना चाहते हैं तो हमें खुद से नाम प्रदान करना चाहिए था।
यदि हम अद्वितीय बाधा कॉलम में पहले से मौजूद मान डालने का प्रयास करते हैं, तो हम नीचे त्रुटि प्राप्त करेंगे।
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Msg 2627, Level 14, State 1, Line 11
UNIQUE KEY बाधा 'UQ__Customer__CA1E8E3C7E8AFCB1' का उल्लंघन। ऑब्जेक्ट 'dbo.Customer' में डुप्लिकेट कुंजी सम्मिलित नहीं कर सकता। डुप्लीकेट कुंजी मान () है।
विवरण समाप्त कर दिया गया है।

यदि आप कुछ नामकरण परंपरा के साथ अद्वितीय बाधा बनाना चाहते हैं, तो हम नीचे दिए गए सिंटैक्स का उपयोग कर सकते हैं।

USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [SSN] VARCHAR(11),
    Constraint UQ_Dbo_Customer_SSN Unique(SSN)
) 
 


वीडियो डेमो :SQL सर्वर में अद्वितीय बाधा क्या है





  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इन 4 आम डीबीए गलतियों से बचें

  2. असेंबली 'Microsoft.SqlServer.Types' संस्करण 10 या उच्चतर नहीं मिला

  3. SQL सर्वर में "पंक्ति संस्करण" क्या है?

  4. डेटाबेस तालिका से यादृच्छिक रिकॉर्ड (टी-एसक्यूएल)

  5. SQL सर्वर प्रदर्शन टॉप IO क्वेरी -1