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

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

परिदृश्य:

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

समाधान:

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

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

--Let's insert some sample data to test Unique Constraint 
Insert into dbo.Customer(FirstName,LastName,SSN)
Values(Null,Null,'000-00-0000'),
('Aamir',Null,'000-00-0000'),
(Null,'Aamir','000-00-0000')
,('Aamir','Shahzad','000-00-0001')
,('Raza','M','000-00-0002')
 
 यदि आपने इन्सर्ट स्टेटमेंट पर ध्यान दिया है, तो फर्स्ट रिकॉर्ड में मैंने फर्स्टनाम और लास्ट नेम के लिए दोनों नल मान रखे हैं। दूसरे रिकॉर्ड में मैंने पहले नाम के लिए 'आमिर' और अंतिम नाम के लिए शून्य का इस्तेमाल किया। तीसरे रिकॉर्ड में दूसरे रिकॉर्ड के विपरीत। यहाँ से हम क्या समझते हैं कि दोनों कॉलम मानों पर अद्वितीय बाधा काम कर रही है। जब तक दोनों स्तंभों का संयुक्त मान अद्वितीय है, तब तक यह हमें सम्मिलित करने देगा, यहां तक ​​कि उनमें से एक भी शून्य है। , यह मुझे बिना किसी समस्या के आने देगा, क्योंकि यह मौजूदा मूल्यों से अद्वितीय है।

Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza',Null,'000-00-0000')
 
 
 आइए चुनिंदा क्वेरी का उपयोग करके तालिका में रिकॉर्ड देखें।
एसक्यूएल सर्वर टेबल में एक से अधिक कॉलम पर यूनीक कंस्ट्रक्शन कैसे जोड़ें
यदि हम डुप्लिकेट रिकॉर्ड डालने का प्रयास करते हैं, तो हमें नीचे त्रुटि मिलेगी।

Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza',Null,'000-00-0000')
 
 Msg 2627, Level 14, State 1, Line 30, UNIQUE KEY बाधा 'UQ_Dbo_Customer_FName_LName' का उल्लंघन। ऑब्जेक्ट 'dbo.Customer' में डुप्लिकेट कुंजी सम्मिलित नहीं कर सकता। डुप्लीकेट कुंजी मान (रज़ा, ) है। बयान समाप्त कर दिया गया है। 


  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 सर्वर में Msg 512 "सबक्वायरी ने 1 से अधिक मान लौटाए" को ठीक करें

  2. SQL सर्वर समानांतर बैकअप पुनर्स्थापना -2

  3. पेश है प्लेबैक—स्पॉटलाइट क्लाउड के लिए टाइम डायग्नोसिस में नया बिंदु

  4. SQL सर्वर में CAST () कैसे काम करता है

  5. मैं SQL सर्वर XML कॉलम में किसी मान की क्वेरी कैसे कर सकता हूं?