sql >> Databáze >  >> RDS >> Sqlserver

Co je jedinečné omezení v SQL Server - SQL Server / TSQL výukový program, část 95

Co je jedinečné omezení v SQL Server:

Jedinečné omezení na serveru SQL Server je vytvořeno ve sloupci nebo sloupcích, aby omezilo sloupce na přijímání pouze jedinečných hodnot.
Ve sloupci, pro který je vytvořeno jedinečné omezení, je povolena pouze jedna hodnota Null.

Scénář:

Řekněme, že pracujete jako vývojář SQL Serveru pro pojišťovnu, budete požádáni o vytvoření tabulky dbo.Customer, která by měla mít sloupec SSN a měla by vždy přijímat jedinečné hodnoty.


Řešení:

Pro výše uvedený scénář můžeme použít Unique Constraint na SSN Column. Níže uvedený skript lze použít k vytvoření jedinečného omezení pro sloupec.
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')
 
 
Zkontrolujte data v tabulce dbo.Customer pomocí Vybrat dotaz
Jak přidat jedinečné omezení do sloupce na serveru SQL

Pojďme pomocí systémových pohledů zkontrolovat, zda je přidáno jedinečné omezení a jaký název mu SQL Server přidělil.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
Jak přidat jedinečné omezení na SQL Server
 Jak můžeme vidět, SQL Server přiřadil „UQ__Customer__CA1E8E3C7E8AFCB1“ název Unique Constraint. Pokud chceme implementovat nějakou konvenci pojmenování, měli bychom si jméno zadat sami.
Pokud se pokusíme vložit hodnotu, která již existuje do sloupce Unique Constraint, dostaneme níže chybu.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Zpráva 2627, úroveň 14, stav 1, řádek 11
Porušení omezení UNIQUE KEY 'UQ__Customer__CA1E8E3C7E8AFCB1'. Nelze vložit duplicitní klíč do objektu 'dbo.Customer'. Duplicitní hodnota klíče je ().
Příkaz byl ukončen.

Pokud byste chtěli vytvořit Unique Constraint s nějakou konvencí pojmenování, můžeme použít níže uvedenou syntaxi.

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


Video ukázka:Co je jedinečné omezení na serveru SQL Server





  1. Funkční jednotky

  2. Bezpečně přejmenovávejte tabulky pomocí sloupců sériového primárního klíče

  3. Měření výkonu databáze pod tlakem

  4. hromadné vložení z Javy do Oracle