sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er primær nøglebegrænsning i SQL Server-database - SQL Server / T-SQL vejledning del 54

Hvad er primær nøglebegrænsning:

Primary Key Constraint er oprettet for at sikre unikke poster/rækker. Primary Key Constraint kan oprettes på enkelte eller sæt af kolonner, så længe kolonnen/kolonnerne ikke tillader nul-værdier.
1) Primary Key Constraint opretter Clustered Index som standard, hvis den ikke allerede eksisterer Lad os sige, at du opretter en ny tabel, og du har tilføjet kolonne med Primary Key, den vil skabe et klynget indeks.
I nedenstående eksempel opretter vi tabel dbo.Customer, og vi har tilføjet CustomerId som Primary Key Constraint. Lad os tjekke, hvilken type indeks der er oprettet.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )
 
 Vi kan forespørge sys.indexes systemvisning for at få indeksoplysninger 
SELECT *
FROM sys.indexes
WHERE object_name(object_id) = 'Customer'
 
 Som du kan se, at Clustered indeks er oprettet, da der ikke var noget cluster index på denne tabel før. Bemærkede navnet på Clustered Index, det er genereret af SQL Server. Det er altid en god ide at give et korrekt navn til indekser i henhold til navnekonventionen/standarder, som din virksomhed bruger. 

2) Hvis klynget indeks allerede er oprettet på kolonne, primær Nøglen skal oprette unikt indeks Hvis et klynget indeks allerede er til stede på kolonne/kolonner i en tabel, og vi forsøger at oprette Primary Key, vil det skabe Unique Non-clustered.
Lad os droppe og genskabe dbo.Customer table. Da vi ikke kan oprette Clustered Index på kolonner, der accepterer Null-værdier, er vi nødt til at definere vores 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)
 
 
 
 Lad os tjekke, hvilken type indekser der oprettes ved at bruge sys.indexes systemvisning. Der bør være ét Clustered Index, som vi oprettede på SSN, og der bør være et unikt ikke-clustered, som skal oprettes af Primary Key Constraint.
Hvad er Primary Key Constraint i SQL Server - SQL Server / TSQL Tutorial

Videodemo:Hvad er primærnøglebegrænsning i SQL Server, og hvordan oprettes primærnøgle

  1. Hvordan vælger og optimerer man orakelindekser?

  2. PDOException SQLSTATE[HY000] [2002] Ingen sådan fil eller mappe

  3. Sådan returneres ASCII-kodeværdien for en given karakter i SQL Server

  4. Sådan tjekker du databasen på en ikke-rodfæstet Android-enhed