sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är primär nyckelbegränsning i SQL Server Database - SQL Server / T-SQL självstudie del 54

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

  1. Hur ställer du in ett standardvärde för en MySQL Datetime-kolumn?

  2. Fråga för att hitta genomsökningar av hela tabellen i Oracle

  3. Django-DB-migrationer:kan inte ALTER TABLE eftersom den har väntande triggerhändelser

  4. MySQL DROP VIEW