修改和规则的绑定与松绑,绑定与松绑

用CREATE
RULE语句成立规则

用CREATE
RULE语句创立规则

CREATE
DEFAULT语句成立私下认可值

/*–示例表达
 下边包车型地铁演示演示了哪些把规则绑定到列和用户定义的数据类型
 并且演示了修改绑定于列和用户定义的数据类型的规则时,那两者之间的异样。
–*/
–定义数据类型
EXEC sp_addtype ‘ut_age’,’int’,’null’
GO

始建雇佣日期规则 hire_date_rule

创制雇佣日期规则 hire_date_rule

创设生日暗中认可值birthday_defa

–为ut_age定义规则
CREATE RULE r_ut_age
AS
@age between 0 and 200
GO

CREATE RULE hire_date_rule  
AS @hire_date>='1980-01-01' and 
@hire_date<=getdate()
CREATE RULE hire_date_rule 
AS @hire_date>='1980-01-01' and 
@hire_date<=getdate()
CREATE DEFAULT birthday_defa
AS  '1978-1-1'

–将规则绑定到用户定义的数据类型
EXEC sp_bindrule ‘r_ut_age’,’ut_age’
GO

创造性别规则sex_rule

开创性别规则sex_rule

创办当今日期默许值today_defa

–使用定义的数据类型
CREATE TABLE tb(
Name nvarchar(20),
AGE_u ut_age,
AGE int)
GO

CREATE RULE sex_rule  
AS @sex in ('男','女')
CREATE RULE sex_rule 
AS @sex in ('男','女')
CREATE DEFAULT today_defa
AS getdate()

–直接将规则绑定到列
EXEC sp_bindrule ‘r_ut_age’,’tb.AGE’
GO

开创评分规则grade_rule

创办评分规则grade_rule

sp_helptext 查看私下认可值

修改和规则的绑定与松绑,绑定与松绑。–插入数据
INSERT tb VALUES(‘AA’,10,0)
INSERT tb VALUES(‘BB’,10,210)
/*–那条记下违反了平整,所以会接受错误音信
服务器: 消息 513,级别 16,状态 1,行 1
列的插入或更新与原先的 CREATE RULE
语句所威逼的平整争辩。该语句已告一段落。争辩时有产生于数据库 ‘tempdb’,表
‘tb’,列 ‘AGE’。
–*/
GO

CREATE RULE grade_rule
AS @value between 1 and 100
CREATE RULE grade_rule
AS @value between 1 and 100

查看暗中同意值today_defa

–创设三个新规则
CREATE RULE r_ut_age1
AS
@age between 20 and 300
GO

 

 

EXEC sp_helptext today_defa

–将新规则绑定到列
EXEC sp_bindrule ‘r_ut_age1′,’tb.AGE’
INSERT tb VALUES(‘BB’,10,210)
–绑定新规则到列时,新规则在插入数据时即刻生效
GO

创办字符规则my_character_rule

创建字符规则my_character_rule

sp_bindefault
绑定暗许值

–使用futureonly选项将新规则绑定到定义的数据类型
EXEC sp_bindrule ‘r_ut_age1′,’ut_age’,futureonly
INSERT tb VALUES(‘CC’,10,210)
INSERT tb VALUES(‘DD’,210,210)
SELECT * FROM tb
/*–结果
绑定新规则到定义的数据类型时,即使内定 futureonly
参数,则已经表中已经定义的列不应用新规则
从而第①条插入语句收到什么错误音讯:
服务器: 消息 513,级别 16,状态 1,行 1
列的插入或更新与原先的 CREATE RULE
语句所要挟的条条框框争辨。该语句已偃旗息鼓。争辩时有发生于数据库 ‘tempdb’,表
‘tb’,列 ‘AGE_u’。

Create rule my_character_rule
As @value like '[a-z]%[0-9]' 
Create rule my_character_rule
As @value like '[a-z]%[0-9]' 
绑定默认值today_defa 到employee表的hire_date列上

EXEC sp_bindefault today_defa, 'employee.hire_date'

表中的现有数量为:
Name                 AGE_u       AGE        

 

 

997755.com澳门葡京 ,sp_unbindefault
解除默许值的绑定


sp_helptext 查看规则

sp_helptext 查看规则

铲除暗许值today_defa与表employee
的hire_date 列的绑定

AA                   10          0
BB                   10          210
CC                   10          210
–*/
GO

翻开规则hire_date_rule的公文音讯

查看规则hire_date_rule的文本音信

EXEC sp_unbindefault 'employee.hire_date'

–删除定义的条条框框
DROP RULE r_ut_age,r_ut_age1
/*–由于规则已经绑定到用户定义的数据类型和列,所以吸收如下错误音讯
服务器: 消息 3716,级别 16,状态 1,行 3
没辙除去 规则 ‘r_ut_age’,因为它绑定到了3个或多少个 列 上。
服务器: 消息 3716,级别 16,状态 1,行 3
心慌意乱除去 规则 ‘r_ut_age1’,因为它绑定到了多少个或七个 列 上。
–*/
GO

EXECUTE sp_helptext hire_date_rule
EXECUTE sp_helptext hire_date_rule

 DROP
DEFAULT语句删除暗许值

–按梯次删除就能够了
DROP TABLE tb
EXEC sp_droptype ‘ut_age’
DROP RULE r_ut_age,r_ut_age1

 

 

 删除生日暗中同意值birthday_defa

sp_bindrule绑定规则

sp_bindrule绑定规则

DROP DEFAULT birthday_defa

将规则hire_date_rule绑定到employee表的hire_date列上

将规则hire_date_rule绑定到employee表的hire_date列上

 

EXEC sp_bindrule hire_date_rule, 'employee.hire_date'
EXEC sp_bindrule hire_date_rule, 'employee.hire_date'

概念用户定义数据类型pat_char,将规则my_character_rule绑定到pat_var上

概念用户定义数据类型pat_char,将规则my_character_rule绑定到pat_var上

EXEC sp_addtype pat_char,'varchar(10)','NOT NULL'
GO
EXEC sp_bindrule my_character_rule, pat_char, 'futureonly‘
EXEC sp_addtype pat_char,'varchar(10)','NOT NULL'
GO
EXEC sp_bindrule my_character_rule, pat_char, 'futureonly‘

sp_unbindrule
解除规则的绑定

sp_unbindrule
解除规则的绑定

 

 

破除绑定在employee表的hire_date列和用户定义数据类型pat_char上的规则

清除绑定在employee表的hire_date列和用户定义数据类型pat_char上的条条框框

EXEC sp_unbindrule 'employee.hire_date'
EXEC sp_unbindrule 'employee.hire_date'

DROP
RULE语句删除当前数据库中的1个或几个规则

DROP
RULE语句删除当前数据库中的2个或四个规则

DROP RULE sex_rule,hire_date_rule 
DROP RULE sex_rule,hire_date_rule 

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website