PRIMARY KEY-Einschränkungen

Eine Tabelle verfügt normalerweise über eine Spalte oder eine Kombination aus Spalten, die Werte enthalten, die jede Zeile in der Tabelle eindeutig identifizieren. Diese Spalte oder Kombination aus Spalten wird als Primärschlüssel (PK, Primary Key) der Tabelle bezeichnet und erzwingt die Entitätsintegrität der Tabelle. Sie können einen Primärschlüssel erstellen, wenn Sie beim Erstellen oder Ändern einer Tabelle eine PRIMARY KEY-Einschränkung definieren.

Eine Tabelle kann nur über eine einzige PRIMARY KEY-Einschränkung verfügen. In Spalten, die an der PRIMARY KEY-Einschränkung beteiligt sind, sind NULL-Werte nicht zulässig. Da PRIMARY KEY-Einschränkungen eindeutige Daten garantieren, werden sie häufig für eine Identitätsspalte definiert.

Wenn Sie eine PRIMARY KEY-Einschränkung für eine Tabelle angeben, erzwingt Database Engine (Datenbankmodul) die Eindeutigkeit der Daten, indem ein eindeutiger Index für die Primärschlüsselspalten erstellt wird.Der Index ermöglicht darüber hinaus den schnellen Zugriff auf Daten, wenn der Primärschlüssel in Abfragen verwendet wird. Folglich müssen die ausgewählten Primärschlüssel die Regeln für das Erstellen eindeutiger Indizes befolgen.

Wenn eine PRIMARY KEY-Einschränkung für mehrere Spalten definiert wird, können Werte innerhalb einer Spalte dupliziert werden; jede Kombination aus den Werten aller Spalten, die in der Definition der PRIMARY KEY-Einschränkung enthalten sind, muss jedoch eindeutig sein.

Wie in der nachfolgenden Abbildung dargestellt, müssen die Spalten ProductID und VendorID in der Purchasing.ProductVendor-Tabelle eine zusammengesetzte PRIMARY KEY-Einschränkung für diese Tabelle bilden. So wird sichergestellt, dass die Kombination von ProductID und VendorID eindeutig und somit einmalig ist.

Zusammengesetzte PRIMARY KEY-Einschränkung

Wenn Sie mit Verknüpfungen arbeiten, verbinden PRIMARY KEY-Einschränkungen eine Tabelle mit einer anderen. Um beispielsweise zu ermitteln, welche Lieferanten welche Produkte bereitstellen, können Sie eine Dreiwegeverknüpfung zwischen der Purchasing.Vendor-Tabelle, der Production.Product-Tabelle und der Purchasing.ProductVendor-Tabelle verwenden. Da ProductVendor sowohl ProductID- als auch VendorID-Spalten enthält, kann dank ihrer Beziehung mit ProductVendor sowohl auf die Product- als auch auf die Vendor-Tabelle zugegriffen werden.