SQL SERVER – 2008 – Erstellen von Primärschlüssel, Fremdschlüssel und Standardeinschränkung
Primärschlüssel, Fremdschlüssel und Standardeinschränkung sind die 3 Haupteinschränkungen, die beim Erstellen von Tabellen oder sogar danach berücksichtigt werden müssen. Es scheint sehr einfach zu sein, diese Einschränkungen anzuwenden, aber wir haben immer noch einige Verwirrungen und Probleme bei der Implementierung. Also habe ich versucht, über diese Einschränkungen zu schreiben, die auf verschiedenen Ebenen und auf verschiedene Arten oder Methoden erstellt oder hinzugefügt werden können.
Primärschlüsseleinschränkung: Primärschlüsseleinschränkungen verhindern doppelte Werte für Spalten und bieten jeder Spalte eine eindeutige Kennung.
1) Create Table-Anweisung zum Erstellen des Primärschlüssels
a. Spaltenebene
USE AdventureWorks2008GOCREATE TABLE Products(ProductID INT CONSTRAINT pk_products_pid PRIMARY KEY,ProductName VARCHAR(25));GO
b. Tabelle Ebene
CREATE TABLE Products(ProductID INT,ProductName VARCHAR(25)CONSTRAINT pk_products_pid PRIMARY KEY(ProductID));GO
2) Alter Table-Anweisung zum Erstellen des Primärschlüssels
ALTER TABLE ProductsADD CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)GO
3) Alter-Anweisung zum Löschen des Primärschlüssels
ALTER TABLE ProductsDROP CONSTRAINT pk_products_pid;GO
Fremdschlüsseleinschränkung: Wenn eine Fremdschlüsseleinschränkung zu einer vorhandenen Spalte oder Spalten in der Tabelle hinzugefügt wird SQL Server überprüft standardmäßig die vorhandenen Daten in den Spalten, um sicherzustellen, dass alle Werte außer NULL in den Spalten des referenzierten PRIMÄRSCHLÜSSELS oder der EINDEUTIGEN Einschränkung vorhanden sind.
1) Create Table Anweisung zum Erstellen eines Fremdschlüssels
a. Spaltenebene
USE AdventureWorks2008GOCREATE TABLE ProductSales(SalesID INT CONSTRAINT pk_productSales_sid PRIMARY KEY,ProductID INT CONSTRAINT fk_productSales_pid FOREIGN KEY REFERENCES Products(ProductID),SalesPerson VARCHAR(25));GO
b. Tabelle Ebene
CREATE TABLE ProductSales(SalesID INT,ProductID INT,SalesPerson VARCHAR(25)CONSTRAINT pk_productSales_sid PRIMARY KEY(SalesID),CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID));GO
1) Alter Table-Anweisung zum Erstellen eines Fremdschlüssels
ALTER TABLE ProductSalesADD CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID)GO
2) Alter Table-Anweisung zum Löschen des Fremdschlüssels
ALTER TABLE ProductSalesDROP CONSTRAINT fk_productSales_pid;GO
Standardeinschränkung: Die Standardeinschränkung, die für eine Spalte erstellt wird, enthält die Standarddaten, die in der Einschränkung angegeben sind, wenn keine Datensätze oder Daten in diese Spalte eingefügt werden.
1) Create Table-Anweisung zum Erstellen der Standardeinschränkung
a. Spaltenebene
USE AdventureWorks2008GOCREATE TABLE Customer(CustomerID INT CONSTRAINT pk_customer_cid PRIMARY KEY,CustomerName VARCHAR(30),CustomerAddress VARCHAR(50) CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN');GO
b. Tabellenebene: Nicht anwendbar für Standardeinschränkung
2) Alter Table-Anweisung zum Hinzufügen einer Standardeinschränkung
ALTER TABLE CustomerADD CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN' FOR CustomerAddressGO
3) Ändern Sie die Tabelle, um die Standardeinschränkung zu löschen
ALTER TABLE CustomerDROP CONSTRAINT df_customer_AddGO