SQL级联
主键约束
在创建表的时候创建主键约束。
1 2 3 4
| create table customer( customerld int identity not null primary key, CustomerName nvarchar(30) not null)
|
在已存在的表上创建主键约
1 2 3
| alter table person add constraint PK_Employee_Id primary key(personld)
|
外键约束
创建表的时候创建外
1 2 3 4 5 6 7
| create table orders ( orderld int identity not null primary key, customerld int not null foreign key references customer(customerid)
)
|
在已存在的表中添加一个外键
假设上面的代码去掉了添加外键行,那么可以书写代码如下:
1 2 3 4
| alter table orders add constraint FK_Orders_Customerld foreign key(customerid) references customer(customerld)
|
级联动
语法
1 2 3 4 5 6
| alter table orders add constraint FK_Orders_Customerld foreign key (customerid) references customer(customerld)
on update no action on delete cascade
|
# CHECK约束
语法
1 2 3 4
| alter table Account add constraint CN_AccountAge check (Account_Age>18)
|
- 如果此时视,添加一条不满足的记录,将报如下错误:
1
| insert into Account values (22,'洪','17')
|
例子
1 2 3 4 5 6
| alter table Aocount WITH NOCHECK add constraint CN_AccountAge18 check (Account_Age>18)
|
1 2 3 4 5 6 7
| begin tran select * from s with(holdlock) where 学号='001' waitfor delay'00 00:35' commit tran update s set 姓名='平安夜' where 学号='001'
|