with check option(视图 )

建立视图的时候使用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 行受影响)
时间: 2024-08-02 13:48:48

with check option(视图 )的相关文章

PLSQL_基础系列5_视图控制WITH CHECK OPTION

2014-12-09 BaoXinjian 一.摘要 通过有with check option选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论: 首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作. 1. 对于update, 有with check option,要保证update后,数据要被视图查询出来 2. 对于delete, 有无with check option都一样 3. 对于insert, 有with check

sqlserver-一次updlock和withnolock和with check option 的报错原因分析

接口程序一直运行的很稳定,其中有一天进行了数据库的整改,导致程序不断报错, 报错信息如下 原因: 程序代码写入以下代码 select * from ViewName with(updlock) where XXX 而数据库的这个view代码如下 select * from tableName with(nolock) where XX 只要执行这个查询,就会导致以上错误,以上错误代码,一个需要加锁,一个不需要加锁,故报错了 故将数据库的view进行这样写 select * from tableN

数据库对象(视图,序列,索引,同义词)【weber出品必属精品】

视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授权成功. SQL> create view v1 as select empno,ename,job,mgr from emp; 视图已创建. SQL> select * from v1; EMPNO ENAME JOB MGR ----- ------ --------- ----- 7369

数据库原理-视图

视图的定义 视图是一张虚拟表,视图的字段是由我们自定义的,视图只供查询,数据不可更改,查询数据来源于我们建立的实体表. 视图的作用 视图可以将多个复杂关联表,提取出我们需要的信息,优化查询速度. 创造视图 语法 CREATE VIEW <视图名> [(列名1,列名2,……)] [WITH ENCRYPTION] AS SELECT_STATEMENT [WITH CHECK OPTION] 视图查询 例1:创建一个成绩单视图 CREATE VIEW dbo.vw_cjd(name, cid,

MySQL视图-(视图创建,修改,删除,查看,更新数据)

视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的.视图并不在数据库中实际存在,行和列数据来自定义视图的查询总使用的表,并且是在使用视图时动态生成的. 视图相对于普通表的优势: 简单:使用视图的用户完全不需要关系后面对应的表结构.关联条件和筛选条件,对用户来说已经是过滤好的符合条件的结果集. 安全:使用视图的用户只能访问他们被允许的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现. 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对

MySQL视图、存储过程与存储引擎

MySQL视图.存储过程与存储引擎 一.前言 ? 前面的文章已经介绍了MySQL的索引与事务以及MySQL的备份与恢复的相关的内容,本文将对MySQL视图及存储过程以及存储引擎进行讲述. 二.MySQL视图 2.1问题引出--视图的概念 ? 我们在使用SQL语句进行多表查询的时候的命令是非常冗长而麻烦的,如果说这样的操作还非常多的使用的情况下就会加大工作人员的工作量,毕竟不能保证如此长的代码不会写错,并且多次进行如此复杂的查询也会造成服务器资源占用比变大的问题,那么我们有什么好的办法解决这样的问

循序渐进DB2.DBA系统管理、运维与应用案例pdf

下载地址:网盘下载 内容简介 DB2数据库是IBM公司关系型数据库核心产品,在国内以及全球有着广泛的应用.针对DB2初学者,<循序渐进DB2:DBA系统管理.运维与应用案例>循序渐进地把DB2涉及的众多概念和知识介绍给大家.客户端连通性.实例.数据库.表空间和缓冲池.数据移动.备份恢复.SQL基础知识.DB2基本监控方法.运行数据库必须考虑的设置.DBA日常维护以及数据库常用工具都是本书关注的重点.在介绍这些数据库对象和概念的同时,作者尽可能从DBA日常工作的角度探究DB2数据库常规维护工作.

一、PHP基础知识总结

date_default_timezone_set("Asia/Shanghai"); date_default_timezone_set("PRC");//设置时区 PRC 中华人民共和国 Eclipse快捷键: alt+shift+r:重命名 ctrl-/:对一行或多行注释或取消注释 ctrl+o:快速outline ctrl+shift+r:打开资源 屏蔽警告:error_reporting(E_ALL & ~E_NOTICE);// ~ 除了 “se

关系数据库标准语言SQL

篇幅过长,恐惧者慎入!!!基础知识,大神请绕道!!! 本节要点: l  SQL概述 l  学生-课程关系 l  数据定义 基本表的定义.删除与修改 索引的建立与删除 l  查询 单表查询 连接查询 嵌套查询 集合查询 l  数据更新 插入数据 修改数据 删除数据 l  视图 定义视图 查询视图 更新视图 视图的作用 SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的.功能极强的关系数据库语言.当前,几乎所有的关系数据库管理系