实施表完整性

Check 约束是一种快速的行级完整性检查机制。它可以最终返回布尔真或假的小算式。
Check 约束的速度比触发器要快得多,如果能够使用check约束来实施数据验证,就应当用check来代替触发器。

Check 约束实例:
CREATE TABLE J_user
(
 NewID int  identity(1,1)  primary key,                      
 userid int check (userid<>'1'),                                            
 username nvarchar](20),
 useradd nvarchar (50) ,
 Brithdate  datetime        
) ON [PRIMARY]

创建用户规则:
create rule birthdate as @Birthdate <= getdate()    
---创建一个名叫birthdate 的规则,声明规则:生日小于当前日期

将规则应用到列中,或者用户定义的数据类型:
EXEC SP_bindrule                         ---调用SP_bindrule系统存储过程
@rulename='birthdate',                ---引用前面已建好的规则
@objname='J_user.Brithdate'        ---应用到J_user.Brithdate

----------------------------------------------------------------------------------------------------------------------------------------
默认值:
CREATE TABLE J_user
(
 NewID int  identity(1,1)  primary key,                      
 userid int check (userid<>'1'),                                            
 username nvarchar](20) default 'FULL',         ----如不输入姓名,就默认为‘FULL’
 useradd nvarchar (50) ,
 Brithdate  datetime        
) ON [PRIMARY]

添加默认值:
alter table J_user
add constraint AA                       -----创建一个名为AA的约束
default 'FULL'  for  username        -----指定username的值为'FULL'

用户定义Default对象:
create default  userdefault  as getdate()   ---创建一个名为userdefault的对像,默认值为当前日期
引用这个默认值:
EXEC SP_bindefault                           ----调用SP_bindefault系统存储过程
@defname='userdefault',                   ----引用上面已建好的default对象
@objname='J_user.Brithdate'             ----绑定到J_user.Brithdate

-----------------------------------------------------------------------------------------------------------------------------------------------------
用户定义数据类型:
用户定义的数据类型需要指定:1.名字;2.数据类型;3.为空性;
EXEC SP_addtype                  ----调用SP_addtype系统存储过程
@typename=Birthdate,          ----声明名字
@phystype=smalldatetime,     ----声明数据类型
@nulltype='NOT NULL'          ----声明为空性

引用用户定义的数据类型:
EXEC SP_bindrule                        ---调用SP_bindrule
@rulename='Birthdate',               ---引用已建好的数据类型
@objname='J_user.Brithdate'       ---绑定到J_user.Brithdate

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值