Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist Unique Constraint in SQL Server – SQL Server / TSQL Tutorial Teil 95

Was ist Unique Constraint in SQL Server:

Unique Constraint in SQL Server wird für eine oder mehrere Spalten erstellt, um die Spalte/n darauf zu beschränken, nur eindeutige Werte zu akzeptieren.
In einer Spalte, für die Unique Constraint erstellt wird, ist nur ein einzelner Nullwert zulässig.

Szenario:

Angenommen, Sie arbeiten als SQL Server-Entwickler für eine Versicherungsgesellschaft. Sie werden gebeten, eine dbo.Customer-Tabelle zu erstellen, die eine Spalte SSN haben und immer eindeutige Werte akzeptieren sollte.


Lösung:

Für das obige Szenario können wir Unique Constraint für die SSN-Spalte verwenden. Das folgende Skript kann verwendet werden, um eine eindeutige Einschränkung für eine Spalte zu erstellen.
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')
 
 
Überprüfen Sie die Daten in der Tabelle dbo.Customer mithilfe von Select query
So fügen Sie einer Spalte in SQL Server eine eindeutige Einschränkung hinzu

Lassen Sie uns die Systemansichten verwenden, um zu prüfen, ob Unique Constraint hinzugefügt wurde und welchen Namen SQL Server ihm gegeben hat.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
So fügen Sie Unique Constraints in SQL Server hinzu
 Wie wir sehen können, hat der SQL Server der Unique Constraint den Namen „UQ__Customer__CA1E8E3C7E8AFCB1“ gegeben. Wenn wir eine Namenskonvention implementieren möchten, sollten wir den Namen selbst angeben.
Wenn wir versuchen, den Wert einzufügen, der bereits in der Spalte Unique Constraint vorhanden ist, erhalten wir die folgende Fehlermeldung.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Msg 2627, Level 14, State 1, Line 11
Verletzung der UNIQUE KEY-Einschränkung 'UQ__Customer__CA1E8E3C7E8AFCB1'. Doppelter Schlüssel kann nicht in Objekt „dbo.Customer“ eingefügt werden. Der doppelte Schlüsselwert ist ().
Die Anweisung wurde beendet.

Wenn Sie die Unique Constraint mit einer Namenskonvention erstellen möchten, können wir die folgende Syntax verwenden.

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-Demo:Was ist Unique Constraint in SQL Server