首页 > 其他 > 详细

with check option(视图 )

时间:2015-12-25 15:00:13      阅读:135      评论:0      收藏:0      [点我收藏+]

建立视图的时候使用WITH CHECK OPTION 与不使用的区别

WITH CHECK OPTION
  insert update  delete
使用with check option 保证insert后,数据要被视图查询出来 保证update后,数据要被视图查询出来 无要求
未使用with check option 无要求 无要求

无要求

 

 

--========================================建立测试表TAB
--DROP TABLE TAB
CREATE TABLE TAB
(
  ID INT,
  NAME VARCHAR(10),
  LOC VARCHAR(100)
)
---=======================================插入业务数据测试
INSERT INTO TAB SELECT 1,JACK,ChangSha UNION ALL
                SELECT 2,TOM,ShangHai UNION ALL
                SELECT 3,JACK,Kunming UNION ALL
                SELECT 4,JACK,Hubei 

--===================================建立视图
--1.含有WITH CHECK OPTION的
--DROP VIEW V_WCO
GO
CREATE VIEW V_WCO
AS
SELECT * FROM TAB WHERE NAME=TOM
WITH CHECK OPTION;

--2.不含有WITH CHECK OPTION的
--DROP VIEW V_WCO_2
CREATE VIEW V_WCO_2
AS
SELECT * FROM TAB WHERE NAME=TOM
--================更新视图============--
--###########===INSERT===############--
--INSERT 视图查询结果集中不包含的记录

Insert  into V_WCO SELECT 5,JACK,QuJin

--INSERT 视图查询结果集中包含的记录
insert into V_WCO SELECT 5,TOM,QuJin
/*
  消息 550,级别 16,状态 1,第 1 行
试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。
语句已终止。
*/



--###########===DELETE===############--


delete from V_WCO where ID=1
/*
  (0 行受影响)
*/

--###########===UPDATE===############--
---update V_WCO
update V_WCO set NAME=已更新 WHERE ID=1
--(0 行受影响)
update V_WCO set NAME=已更新 WHERE ID=2
--(1 行受影响)

                

 

with check option(视图 )

原文:http://www.cnblogs.com/OliverQin/p/5075717.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!