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

Was ist eine Primärschlüsseleinschränkung in der SQL Server-Datenbank – SQL Server / T-SQL-Tutorial Teil 54

Was ist eine Primärschlüsselbeschränkung:

Die Primärschlüsseleinschränkung wird erstellt, um die Eindeutigkeit von Datensätzen/Zeilen sicherzustellen. Primärschlüsseleinschränkungen können für einzelne oder mehrere Spalten erstellt werden, solange die Spalte/Spalten keine Nullwerte zulassen.
1) Primärschlüsseleinschränkungen erstellen standardmäßig Clustered Index, falls noch nicht vorhanden Nehmen wir an, Sie erstellen eine neue Tabelle und haben eine Spalte mit Primärschlüssel hinzugefügt, es wird ein gruppierter Index erstellt.
Im folgenden Beispiel erstellen wir die Tabelle dbo.Customer und wir haben CustomerId als Primary Key Constraint hinzugefügt. Sehen wir uns an, welche Art von Index erstellt wird.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )
 
 Wir können die Systemansicht von sys.indexes abfragen, um Indexinformationen zu erhalten 
SELECT *
FROM sys.indexes
WHERE object_name(object_id) = 'Customer'
 
 Wie Sie sehen, wird der Clustered-Index erstellt, da zuvor kein Cluster-Index für diese Tabelle vorhanden war. Beachten Sie den Namen für den Clustered-Index, er wird von SQL Server generiert. Es ist immer eine gute Idee, Indizes gemäß der Namenskonvention/den Standards, die Ihr Unternehmen verwendet, einen richtigen Namen zu geben. 

2) Wenn der gruppierte Index bereits für die Spalte Primär erstellt wurde Der Schlüssel wird einen eindeutigen Index erstellen Wenn der gruppierte Index bereits für Spalte/Spalten in einer Tabelle vorhanden ist und wir versuchen, einen Primärschlüssel zu erstellen, wird ein eindeutiger, nicht gruppierter erstellt.
Lassen Sie uns die dbo.Customer-Tabelle löschen und neu erstellen. Da wir keinen Clustered-Index für Spalten erstellen können, die Nullwerte akzeptieren, müssen wir unsere Spalten als Not Null definieren.
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)
 
 
 
 Lassen Sie uns überprüfen, welche Art von Indizes erstellt werden, indem Sie die Systemansicht sys.indexes verwenden. Es sollte einen geclusterten Index geben, wie wir ihn auf SSN erstellt haben, und es sollte einen eindeutigen nicht geclusterten Index geben, der durch Primary Key Constraint erstellt werden sollte.
Was ist eine Primärschlüsseleinschränkung in SQL Server – SQL Server / TSQL-Lernprogramm

Video-Demo:Was ist eine Primärschlüssel-Einschränkung in SQL Server und wie wird ein Primärschlüssel erstellt?