
sql2005 with check option 这样使用,还是可以插入,修改,????
select*fromstu8select*fromstu8_view2select*fromstu8_view3createviewstu8_view2asselect...
select * from stu8
select * from stu8_view2
select * from stu8_view3
create view stu8_view2 as select * from stu8 where s#>10
create view stu8_view3 as select * from stu8 where s#>10
with check option
---
exec sP_help stu8_view2
insert into stu8_view2 values ('李毅','2000-1-1','男',20 ) -----t stu8_view2 stu8 插入均正确
insert into stu8_view3 values ('李虎','2001-1-1','男',21 ) -----t stu8_view3 stu8 插入均正确
update stu8_view2 set sname ='孙豹' where s#=11 ----t stu8_view2 stu8 修改均正确
update stu8_view3 set sname ='张菊' where s#=12 ----t stu8_view2 stu8 修改均正确 展开
select * from stu8_view2
select * from stu8_view3
create view stu8_view2 as select * from stu8 where s#>10
create view stu8_view3 as select * from stu8 where s#>10
with check option
---
exec sP_help stu8_view2
insert into stu8_view2 values ('李毅','2000-1-1','男',20 ) -----t stu8_view2 stu8 插入均正确
insert into stu8_view3 values ('李虎','2001-1-1','男',21 ) -----t stu8_view3 stu8 插入均正确
update stu8_view2 set sname ='孙豹' where s#=11 ----t stu8_view2 stu8 修改均正确
update stu8_view3 set sname ='张菊' where s#=12 ----t stu8_view2 stu8 修改均正确 展开
2014-09-03
展开全部
WITH CHECK OPTION
是 约束可更新视图 的用法。
也就是 向一个 视图 里面的表, 插入/更新数据的时候, 要满足一定的条件。
例如:
1> CREATE VIEW
2> v_sale_report_x
3> AS
4> SELECT
5> *
6> FROM
7> sale_report
8> WHERE
9> sale_item = 'X'
10> WITH CHECK OPTION;
11> go
-- 上面创建一个 约束可更新视图。
-- 下面尝试 插入一行 满足 约束条件的数据。
1> INSERT INTO v_sale_report_x (
2> sale_date, sale_item, sale_money
3> ) VALUES (
4> CONVERT(DATETIME, '2012-02-02 01:00:00', 120), 'X', 1
5> );
6> go
(1 行受影响)
-- 下面尝试 插入一行 不满足 约束条件的数据, 结果将报错。
1> INSERT INTO v_sale_report_x (
2> sale_date, sale_item, sale_money
3> ) VALUES (
4> CONVERT(DATETIME, '2012-02-02 01:00:00', 120), 'Y', 1
5> );
6> go
消息 550,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WIT
H CHECK OPTION,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。
语句已终止。
1>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询