SQL SERVER – 2008-skapa primärnyckel, utländsk nyckel och Standardbegränsning
primärnyckel, utländsk nyckel och Standardbegränsning är de 3 huvudbegränsningar som måste beaktas när du skapar tabeller eller till och med efter det. Det verkar väldigt lätt att tillämpa dessa begränsningar men vi har fortfarande vissa förvirringar och problem när vi implementerar det. Så jag försökte skriva om dessa begränsningar som kan skapas eller läggas till på olika nivåer och på olika sätt eller metoder.
Primärnyckelbegränsning: Primärnyckelbegränsningar förhindrar dubbla värden för kolumner och ger unik identifierare till varje kolumn, liksom det skapar grupperat index på kolumnerna.
1) Skapa Tabelluttalande för att skapa primärnyckel
a. kolumnnivå
USE AdventureWorks2008GOCREATE TABLE Products(ProductID INT CONSTRAINT pk_products_pid PRIMARY KEY,ProductName VARCHAR(25));GO
b. Tabellnivå
CREATE TABLE Products(ProductID INT,ProductName VARCHAR(25)CONSTRAINT pk_products_pid PRIMARY KEY(ProductID));GO
2) Ändra Tabelluttalande för att skapa primärnyckel
ALTER TABLE ProductsADD CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)GO
3) ändra uttalande för att släppa primärnyckel
ALTER TABLE ProductsDROP CONSTRAINT pk_products_pid;GO
utländsk nyckelbegränsning: När en SEKUNDÄRNYCKELBEGRÄNSNING läggs till i en befintlig kolumn eller kolumner i tabellen SQL Server kontrollerar du som standard befintliga data i kolumnerna för att säkerställa att alla värden, utom NULL, finns i kolumnen / kolumnerna i den refererade primärnyckeln eller den unika begränsningen.
1) Skapa Tabelluttalande för att skapa utländsk nyckel
a. kolumnnivå
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. Tabellnivå
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) Ändra Tabelluttalande för att skapa utländsk nyckel
ALTER TABLE ProductSalesADD CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID)GO
2) Ändra Tabelluttalande för att släppa utländsk nyckel
ALTER TABLE ProductSalesDROP CONSTRAINT fk_productSales_pid;GO
Standardbegränsning: Standardbegränsning när den skapas i någon kolumn kommer att ha standarddata som anges i begränsningen när inga poster eller data infogas i den kolumnen.
1) Skapa Tabelluttalande för att skapa Standardbegränsning
a. kolumnnivå
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. Tabellnivå: gäller inte för Standardbegränsning
2) Ändra Tabelluttalande för att lägga till Standardbegränsning
ALTER TABLE CustomerADD CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN' FOR CustomerAddressGO
3) ändra tabell för att släppa Standardbegränsning
ALTER TABLE CustomerDROP CONSTRAINT df_customer_AddGO