Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Co to jest unikalne ograniczenie w SQL Server — SQL Server / samouczek TSQL, część 95

Co to jest unikatowe ograniczenie w SQL Server:

Unikalne ograniczenie w SQL Server jest tworzone na kolumnie lub kolumnach, aby ograniczyć kolumny do akceptowania tylko unikalnych wartości.
Tylko pojedyncza wartość Null jest dozwolona w kolumnie, w której tworzone jest unikatowe ograniczenie.

Scenariusz:

Załóżmy, że pracujesz jako programista SQL Server dla firmy ubezpieczeniowej, zostaniesz poproszony o utworzenie tabeli dbo.Customer, która powinna mieć kolumnę SSN i ​​zawsze powinna akceptować wartości Unique.


Rozwiązanie:

W powyższym scenariuszu możemy użyć unikalnego ograniczenia w kolumnie SSN. Poniższy skrypt może zostać użyty do utworzenia unikalnego ograniczenia w kolumnie.
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')
 
 
Sprawdź dane w dbo.Customer table za pomocą Select query
Jak dodać unikalne ograniczenie do kolumny w SQL Server

Skorzystajmy z widoków systemowych, aby sprawdzić, czy dodano ograniczenie unikatowe i jaką nazwę nadał mu program SQL Server.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
Jak dodać unikalne ograniczenie w SQL Server
 Jak widać, SQL Server nadał nazwę UQ__Customer__CA1E8E3C7E8AFCB1 Unique Constraint. Jeśli chcemy zaimplementować jakąś konwencję nazewnictwa, powinniśmy sami podać nazwę.
Jeśli spróbujemy wstawić wartość, która już istnieje w kolumnie Unique Constraint, otrzymamy poniższy błąd.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Msg 2627, Poziom 14, Stan 1, Wiersz 11
Naruszenie ograniczenia UQ__Customer__CA1E8E3C7E8AFCB1 'UQ__Customer__CA1E8E3C7E8AFCB1'. Nie można wstawić zduplikowanego klucza w obiekcie „dbo.Customer”. Zduplikowana wartość klucza to ().
Oświadczenie zostało zakończone.

Jeśli chcesz utworzyć Unikalne Ograniczenie z pewną konwencją nazewnictwa, możemy użyć poniższej składni.

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)
) 
 


Wideo demonstracyjne:co to jest unikatowe ograniczenie w SQL Server





  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak usunąć wiodące i końcowe znaki w SQL Server

  2. SQL:Wybierz dynamiczną nazwę kolumny na podstawie zmiennej

  3. Błąd potwierdzenia uzgadniania uzgadniania przed logowaniem w programie SQL Server

  4. Dlaczego powinienem używać int zamiast bajtu lub shorta w C#

  5. Jak używać instrukcji GO w programie SQL Server do wstawiania rekordów w kolumnie tożsamości — samouczek SQL Server / T-SQL, część 42