Какво е ограничение на първичния ключ:
Ограничението за първичен ключ е създадено, за да гарантира уникалност на записите/редовете. Ограничението за първичен ключ може да бъде създадено върху единична или набор от колони, стига колоната/колоните да не позволяват нулеви стойности.1) Ограничението на първичния ключ създава клъстериран индекс по подразбиране, ако вече не съществува Да приемем, че създавате нова таблица и сте добавили колона с първичен ключ, тя ще създаде клъстериран индекс.
В примера по-долу създаваме таблица dbo.Customer и сме добавили CustomerId като ограничение на първичен ключ. Нека проверим какъв тип индекс е създаден.
USE YourDatabaseName GO CREATE TABLE dbo.Customer ( Customerid INT PRIMARY KEY ,FName VARCHAR(100) ,LName VARCHAR(100) ,SSN VARCHAR(10) )
Можем да потърсим системния изглед sys.indexes, за да получим информация за индекса
SELECT * FROM sys.indexes WHERE object_name(object_id) = 'Customer'
Както можете да видите, че клъстерният индекс е създаден, тъй като не е имало клъстерен индекс в тази таблица преди. Забелязах името на клъстерния индекс, генерира се от SQL Server. Винаги е добра идея да предоставите правилното име за индекси според конвенцията за именуване/стандартите, които вашата компания използва.
2) Ако групираният индекс вече е създаден в колона, първичен Ключът ще бъде Създаване на уникален индекс Ако клъстериран индекс вече присъства в колона/колони в таблица и се опитваме да създадем първичен ключ, той ще създаде уникален неклъстериран.
Нека пуснем и създадем отново таблицата dbo.Customer. Тъй като не можем да създадем клъстериран индекс за колони, които приемат стойности Null, трябва да дефинираме нашите 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)
Нека проверим какъв тип индекси се създават с помощта на системния изглед sys.indexes. Трябва да има един клъстериран индекс, както създадохме на SSN, и трябва да има един уникален неклъстерен индекс, който трябва да бъде създаден от ограничението на първичния ключ.
Какво е ограничението на първичния ключ в SQL Server - SQL Server / TSQL урок
Видео демонстрация:Какво е ограничение на първичния ключ в SQL Server и как да създадете първичен ключ