sql >> Database >  >> RDS >> Sqlserver

Wat is een unieke beperking in SQL Server - SQL Server / TSQL-zelfstudie, deel 95

Wat is een unieke beperking in SQL Server:

Unieke beperking in SQL Server wordt gemaakt voor een kolom of kolommen om te voorkomen dat de kolom(men) alleen unieke waarden accepteren.
Alleen een enkele Null-waarde is toegestaan ​​in een kolom waarop Unieke beperking wordt gemaakt.

Scenario:

Stel dat u werkt als SQL Server-ontwikkelaar voor een verzekeringsmaatschappij, u wordt gevraagd om een ​​dbo.Klanttabel te maken die een kolom SSN moet hebben en die altijd unieke waarden moet accepteren.


Oplossing:

Voor het bovenstaande scenario kunnen we Unieke beperking op SSN-kolom gebruiken. Het onderstaande script kan worden gebruikt om een ​​unieke beperking voor een kolom te maken.
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')
 
 
Controleer de gegevens in dbo.Klanttabel met Select query
Een unieke beperking toevoegen aan een kolom in SQL Server

Laten we de systeemweergaven gebruiken om te controleren of Unique Constraint is toegevoegd en welke naam SQL Server eraan heeft gegeven.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
Een unieke beperking toevoegen in SQL Server
 Zoals we kunnen zien, heeft de SQL Server de naam "UQ__Customer__CA1E8E3C7E8AFCB1" aan Unique Constraint gegeven. Als we een naamgevingsconventie willen implementeren, hadden we zelf een naam moeten opgeven.
Als we proberen de waarde in te voegen die al bestaat in de kolom Unique Constraint, krijgen we onderstaande foutmelding.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Msg 2627, Level 14, State 1, Line 11
Overtreding van UNIQUE KEY-beperking 'UQ__Customer__CA1E8E3C7E8AFCB1'. Kan geen dubbele sleutel invoegen in object 'dbo.Customer'. De dubbele sleutelwaarde is ().
De instructie is beëindigd.

Als u de Unique Constraint met een bepaalde naamgevingsconventie wilt maken, kunnen we de onderstaande syntaxis gebruiken.

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


Videodemo:wat is een unieke beperking in SQL Server





  1. Een datum converteren in MySQL vanuit een stringveld

  2. Time-outuitzonderingen voor SQLServer opvangen

  3. Hoe alle privileges van een gebruiker in Oracle te tonen?

  4. 5 geweldige bronnen om u te helpen uw databasebewakingsrol te verbeteren