Scenario:
U werkt als SQL Server-ontwikkelaar, u wordt gevraagd om scripts te maken voor de dbo.Klanttabel met unieke beperking op de kolommen voornaam en achternaam.Oplossing:
Zoals we weten, is de unieke beperking in SQL Server gemaakt voor een kolom of kolommen om de kolom(men) te beperken om alleen unieke waarden te accepteren.Het onderstaande script kan worden gebruikt om een unieke beperking voor meerdere kolommen te maken in ons geval Voornaam en Achternaam.
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')
Als je de insert-instructie hebt opgemerkt, heb ik in First Record zowel Null-waarden voor FirstName als Last Name geplaatst. In 2e record gebruikte ik de waarde 'Aamir' voor voornaam en Null voor achternaam. In 3e record vice versa van 2e record. Vanaf hier begrijpen we dat de unieke beperking op beide kolomwaarden werkt. Zolang de gecombineerde waarde van beide kolommen uniek is, kunnen we zelfs één ervan null invoegen.
Als ik nog een record wil invoegen waarin ik Null voor achternaam heb , zal het me zonder enig probleem laten, omdat het uniek is van bestaande waarden.
Insert into dbo.Customer(FirstName,LastName,SSN) Values('Raza',Null,'000-00-0000')
Laten we de records in de tabel controleren met behulp van de selectiequery.
Een unieke beperking toevoegen aan meerdere kolommen in SQL Server-tabel |
Insert into dbo.Customer(FirstName,LastName,SSN) Values('Raza',Null,'000-00-0000')
Msg 2627, niveau 14, staat 1, regel 30 Schending van UNIQUE KEY-beperking 'UQ_Dbo_Customer_FName_LName'. Kan geen dubbele sleutel invoegen in object 'dbo.Customer'. De dubbele sleutelwaarde is (Raza,
Videodemo:unieke beperking maken voor meerdere kolommen in SQL Server