Vad är primärnyckelbegränsning:
Primär nyckelbegränsning skapas för att säkerställa unika poster/rader. Primär nyckelbegränsning kan skapas på enstaka eller en uppsättning kolumner så länge kolumnen/kolumnerna inte tillåter nollvärden.1) Primärnyckelbegränsning skapar Clustered Index som standard om det inte redan finns Låt oss säga att du skapar en ny tabell och du har lagt till kolumn med Primärnyckel, den kommer att skapa ett klustrat index.
I exemplet nedan skapar vi tabellen dbo.Customer och vi har lagt till CustomerId som Primary Key Constraint. Låt oss kolla vilken typ av index som skapas.
USE YourDatabaseName GO CREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) )
Vi kan fråga sys.indexes systemvy för att få indexinformation
SELECT * FROM sys.indexes WHERE object_name(object_id) = 'Customer'
Som du kan se att Clustered index skapas eftersom det inte fanns något klusterindex i den här tabellen tidigare. Lade märke till namnet för Clustered Index, det genereras av SQL Server. Det är alltid bra att ange korrekt namn för index enligt namnkonventioner/standarder som ditt företag använder.
2) Om ett klustrat index redan har skapats på kolumn, primär Key kommer att skapa unikt index Om klustrade index redan finns på kolumn/kolumner i en tabell och vi försöker skapa primärnyckel, kommer det att skapa Unique Non-clustered.
Låt oss släppa och återskapa dbo.Customer-tabellen. Eftersom vi inte kan skapa Clustered Index på kolumner som accepterar Null-värden måste vi definiera våra Columns Not Null.
USE YourDatabaseName GO Drop table dbo.Customer GO CREATE TABLE dbo.Customer ( Customerid INT Not Null ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) Not Null ) --Create Clustered Index on SSN Column CREATE CLUSTERED INDEX IX_Customer_SSN ON dbo.Customer (SSN); --Create Primary Key on CustomerID Alter Table dbo.Customer Add Constraint Pk_Customer_CustomerId Primary Key(CustomerId)
Låt oss kontrollera vilken typ av index som skapas genom att använda sys.indexes systemvy. Det bör finnas ett Clustered Index som vi skapade på SSN och det bör finnas ett unikt icke-klusterat index som ska skapas av Primary Key Constraint.
Vad är Primary Key Constraint i SQL Server - SQL Server / TSQL självstudier
Videodemo :Vad är primärnyckelbegränsning i SQL Server och hur man skapar primärnyckel