Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Az ELSŐDLEGES kulcsot az SQL Server Database Engine-ben az SQL Server Management Studio vagy a Transact-SQL használatával határozhatja meg. Az elsődleges kulcs létrehozása automatikusan létrehoz egy megfelelő egyedi fürtözött indexet. Azonban az elsődleges kulcs megadható nem klaszterezett indexként is.
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
Limitations
A táblák csak egy PRIMARY KEY korlátozást tartalmazhatnak.
A PRIMARY KEY kényszerben definiált összes oszlopot NOT NULLkell definiálni. Ha nincs megadva a null érték, a PRIMARY KEY korlátozásban részt vevő összes oszlop nullképessége NOT NULLértékre van állítva.
Permissions
Új tábla elsődleges kulccsal való létrehozásához CREATE TABLE engedélyre van szükség az adatbázisban, és ALTER engedélyt arra a sémára, amelyben a tábla létrejön.
Az elsődleges kulcs meglévő táblában való létrehozásához ALTER engedély szükséges a táblához.
Az SQL Server Management Studio használata
- Az Object Explorerben kattintson a jobb gombbal arra a táblára, amelyhez egyedi korlátozást szeretne hozzáadni, és válassza Tervezéslehetőséget.
- A Table Designerterületen válassza ki annak az adatbázisoszlopnak a sorválasztót, amelyet elsődleges kulcsként szeretne meghatározni. Ha több oszlopot szeretne kijelölni, tartsa lenyomva a CTRL billentyűt, miközben kijelöli a többi oszlop sorválasztóit.
- Kattintson a jobb gombbal az oszlop sorválasztójára, és válassza az Elsődleges kulcs beállításalehetőséget.
Caution
Ha újra szeretné definiálni az elsődleges kulcsot, az új elsődleges kulcs létrehozása előtt törölni kell a meglévő elsődleges kulccsal fennálló kapcsolatokat. Egy üzenet figyelmezteti, hogy a folyamat részeként a meglévő kapcsolatok automatikusan törlődnek.
Az elsődleges kulcs oszlopát egy elsődleges kulcsszimbólum azonosítja a sorválasztóban.
Ha egy elsődleges kulcs egynél több oszlopból áll, egy oszlopban duplikált értékek engedélyezettek, de az elsődleges kulcs összes oszlopában szereplő értékeknek egyedinek kell lenniük.
Összetett kulcs definiálása esetén az elsődleges kulcs oszlopainak sorrendje megegyezik a táblázatban látható oszlopok sorrendjével. Az elsődleges kulcs létrehozása után azonban módosíthatja az oszlopok sorrendjét. További információ: Elsődleges kulcsok módosítása.
Használd a Transact-SQL-t
Elsődleges kulcs létrehozása meglévő táblában
Az alábbi példa létrehoz egy elsődleges kulcsot a TransactionID adatbázis AdventureWorks2025 oszlopában.
ALTER TABLE [Production].[TransactionHistoryArchive]
ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);
Elsődleges kulcs létrehozása új táblában
Az alábbi példa létrehoz egy táblát, és meghatároz egy elsődleges kulcsot a TransactionID adatbázis AdventureWorks2025 oszlopában.
CREATE TABLE [Production].[TransactionHistoryArchive1] (
TransactionID INT IDENTITY(1, 1) NOT NULL,
CONSTRAINT PK_TransactionHistoryArchive1_TransactionID PRIMARY KEY CLUSTERED (TransactionID)
);
Külön klaszterezett indexszel rendelkező nem klaszterezett elsődleges kulcs létrehozása egy új táblában.
Az alábbi példa egy táblát hoz létre a AdventureWorks2025 adatbázisban, a CustomerIDoszlopon nem klaszterezett elsődleges kulccsal. Ezután hozzáad egy klaszteresített indexet TransactionID.
Hozzon létre egy táblát a klaszterezett index hozzáadásához.
CREATE TABLE [Production].[TransactionHistoryArchive1] ( CustomerID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), TransactionID INT IDENTITY(1, 1) NOT NULL, CONSTRAINT PK_TransactionHistoryArchive1_CustomerID PRIMARY KEY NONCLUSTERED (CustomerID) );Most add hozzá a fürtözött indexet.
CREATE CLUSTERED INDEX CIX_TransactionID ON [Production].[TransactionHistoryArchive1] (TransactionID);