/*
刚写了一个灵活设置默认值的,再来一个灵活设置规则的,其实基本上是一样的。
参考联机帮助: Create rule; sp_bindrule; sp_unbindrule
下面是测试:
*/
/*创建一个测试用表*/
create table test_tb(id int ,Country varchar(10))
--没有绑定Rule时全部insert成功
insert test_tb values(1,China)
insert test_tb values(2,Japan)
insert test_tb values(3,England)
insert test_tb values(4,Russia)
go
/*创建一个规则*/
Create Rule list_rule
As
@list In (China, Japan, England)
go
/*将规则绑定到列country*/
EXEC sp_bindrule list_rule, test_tb.Country
--绑定规则后再测试
insert test_tb values(11,China)
insert test_tb values(12,Japan)
insert test_tb values(13,England)
insert test_tb values(14,Russia) -- 此句不符合规则,insert不成功
go
--取消绑定
EXEC sp_unbindrule test_tb.Country
go
--删除规则
Drop rule list_rule
go
--新建一个规则,值稍加修改
Create Rule list_rule
As
@list In (China, Japan, Russia)
go
--再次绑定
EXEC sp_bindrule list_rule, test_tb.Country
go
--绑定新规则后再测试
insert test_tb values(21,China)
insert test_tb values(22,Japan)
insert test_tb values(23,England) -- 此句不符合规则,insert不成功
insert test_tb values(24,Russia)
--查询结果
select * from test_tb
/*
id Country
----------- ----------
1 China
2 Japan
3 England
4 Russia
11 China
12 Japan
13 England
21 China
22 Japan
24 Russia
*/
收下了。不过和我理解的灵活不太一样。这个其实我觉得算是动态设置。:)