SQL SERVER-2008-Creating Primary Key, Foreign Key ja Default Constraint
Primary key, Foreign Key ja Default constraint ovat 3 tärkeintä rajoitusta, jotka on otettava huomioon taulukoita luotaessa tai jopa sen jälkeen. Vaikuttaa hyvin helpolta soveltaa näitä rajoitteita, mutta silti meillä on joitakin sekaannuksia ja ongelmia sen täytäntöönpanossa. Joten yritin kirjoittaa näistä rajoitteista, joita voidaan luoda tai lisätä eri tasoilla ja eri tavoilla tai menetelmillä.
ensisijainen Näppäinrajoitus: ensisijaisten avainten rajoitukset estävät sarakkeiden päällekkäiset arvot ja antavat kullekin sarakkeelle yksilöllisen tunnisteen sekä luovat sarakkeisiin ryhmitetyn indeksin.
1) Create Table Statement to create Primary Key
a. sarakkeen taso
USE AdventureWorks2008GOCREATE TABLE Products(ProductID INT CONSTRAINT pk_products_pid PRIMARY KEY,ProductName VARCHAR(25));GO
b. Taulukon taso
CREATE TABLE Products(ProductID INT,ProductName VARCHAR(25)CONSTRAINT pk_products_pid PRIMARY KEY(ProductID));GO
2) muuta taulukon lauseke ensisijaisen avaimen luomiseksi
ALTER TABLE ProductsADD CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)GO
3) muuta lauseke pudottaaksesi ensisijaisen avaimen
ALTER TABLE ProductsDROP CONSTRAINT pk_products_pid;GO
ulkomaisen avaimen rajoitus: Kun vieraan avaimen rajoitus lisätään taulukon SQL Server-sarakkeeseen tai-sarakkeisiin, tarkistetaan oletusarvoisesti olemassa olevat tiedot sarakkeista sen varmistamiseksi, että kaikki arvot, paitsi NULL, ovat viitatun ensisijaisen avaimen tai yksilöllisen rajoituksen sarakkeissa.
1) Luo taulu, jolla luodaan ulkomainen avain
a. Saraketaso
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. Taulukon taso
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) Muuta taulukon lauseke luodaksesi vieraan avaimen
ALTER TABLE ProductSalesADD CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID)GO
2) muuta taulukon lauseke pudottaa vieraan avaimen
ALTER TABLE ProductSalesDROP CONSTRAINT fk_productSales_pid;GO
Oletusrajoite: Oletusrajoituksella, kun se luodaan johonkin sarakkeeseen, on oletusarvo, joka annetaan rajoituksessa, kun kyseiseen sarakkeeseen ei lisätä tietueita tai tietoja.
1) luo taulukon lauseke, jolla luodaan Oletusrajoitus
a. Saraketaso
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. taulukon taso: ei sovelleta Oletusrajoitukseen
2) muuta taulukon väitettä lisätäksesi Oletusrajoituksen
ALTER TABLE CustomerADD CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN' FOR CustomerAddressGO
3) muuta taulua pudotaksesi Oletusrajoituksen
ALTER TABLE CustomerDROP CONSTRAINT df_customer_AddGO