s
資料庫的完整性規則
(1)實體完整性規則(Entity Integrity Rule)
指在單一資料表中,主索引鍵必須要具有【唯一性】不可重複 不可為空 (NULL)。
(2)參考完整性規則(Referential Integrity Rule)
指在兩個資料表中,次要資料表的外鍵(FK)的資料欄位值,一定要存在於主要資料表的主鍵(PK)中的資料欄位值。
(3)值域完整性規則(Domain Integrity Rule)
指在單一資料表中,同一資料行中的資料屬性必須要相同。
其實以上說的,有點廢話!
「主索引鍵必須要具有【唯一性】並且也不可以為空值 (NULL)」,不符合這個條件,還叫資料庫嗎?
兩個資料庫透過主鍵與外鍵關聯,「次要資料表的外鍵(FK)的資料欄位值,一定要存在於主要資料表的主鍵(PK)中的資料欄位值」,不符合這個條件,怎麼關聯?
「單一資料表中,同一資料行中的資料屬性必須要相同」,同個資料行如果資料屬性可以不同,那真的是見鬼了吧?
| char | 資料有固定長度,並且都為英文數字。 |
| nchar | 資料有固定長度,但不確定是否皆為英文數字。 |
| varchar | 資料沒有固定長度,並且都為英文數字。 |
| nvarchar | 資料沒有固定長度,且不確定是否皆為英文數字。 |
ALTER TABLE Fwoth2 ADD PRIMARY KEY (TA001)
USE test -- 使用資料表 test
GO
-- 建立 Trigger,觸發程序名稱 Tr_Account_changed 作用在資料表 Account
CREATE TRIGGER Tr_Account_changed ON Account
-- 動作 Update、Insert、Delete 都觸發,另外 FOR 可以換成 AFTER
FOR UPDATE,INSERT,DELETE
AS
-- 判斷 Account 資料表中的 password 欄位有異動時
IF (UPDATE(password))
BEGIN
-- 將異動的該筆資料寫入到記錄資料表 Tr_Account
INSERT INTO Tr_Account SELECT * FROM inserted
END
CREATE TABLE TEs
(
--TA000=自動編號
TA000 INT IDENTITY PRIMARY KEY,
TA001 nvarchar (50) NOT NULL,
TA002 nvarchar (50) NOT NULL
)