sql server 2008学习9 视图
创建简单视图:
use test go create view v1(视图名) as select name from b
这样视图就创建好了.
下面说下视图的本质:
当执行 select * from v1 时, 那么实质上市告诉 sql server 把执行 select name from b 语句返回的结果
给我.
视图就像在命令执行的查询那样运行---没有任何的预先优化过程.这意味着数据在请求和所交付的数据之间增加额额外
的一层系统开销,而视图的运行总是比 执行运行内部的sql 更慢.视图存在的理由就是---对于用户是安全或者简化的.
- 视图可以隐藏敏感数据,
- 作为过滤器 例子如下:
use test go create view v2 as select name from b where id=2
总结:视图实际上 只是一个用户不可见的 select语句.
更加复杂的视图:
对视图进行 insert update delete
使用 with check potion 限制插入到视图中的内容。-- 为了通过使用视图更新或者插入数据,结果行必须符合要求
以显示在视图结果中. 也就是插入或者更新的行 必须满足视图中select语句的where条件,
看创建一个视图,sql:
create view v4 as select name from a where name like 'a%' with check option
那么现在 向视图插入一条数据:
insert into v4(name) values('ss')
那么sql 会报错:
因为 子句过滤了 a% 内容,而 插入的ss不符合 这个过滤的条件,所以会报错.
如果想知道某一个视图的作用,那么可以用如下方法:
1.
use test go exec sp_helptext v4(视图名)
返回如下信息:
2.
select * from sys.sql_modules where [object_id]= object_id('v4')
结果如下:
加密视图:
新建一个加密的视图:
create view v5 with encryption as select name from a where name like 'a%' with check option
在运行
select * from sys.sql_modules where [object_id]= object_id('v5')
查看视图时:
definition变成了空值,无法看到视图到底做了些什么.
如果对视图使用了alter 命令,那么 如果不使用加密,那么 修改后的视图,将变成非加密的.
分类:
SQL
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单