在SQL Server 2000的视图中小心使用*符号(二)

 
   | |

导读:本文中描述了sp_refreshview的功能:刷新指定视图的元数据。由于视图所依赖的基础对象的更改……

关键词:SQL Server 2000视图 使用*符号 在SQL2000中使用*号

正在加载数据...

  那么,除了这个方法以外,其实SQL Server 2000也提供了一个扩展存储过程sp_refreshview来帮我们做这件事情,调用的脚本如下:

  --刷新指定视图的元数据

  exec sp_refreshview 'vCustomersB'

  我个人目前就知道这两个办法,不知道,你还有没有其他的办法,有的话可以一起分享一下。

  sp_refreshview的功能描述为:“刷新指定视图的元数据。由于视图所依赖的基础对象的更改,视图的持久元数据会过期。”由于sp_refreshview的代码被封装了(没有公开),所以我们看不到它的内部实现,不过看了这个存储过程的描述,你是否对视图有了新的认识呢?

  从这里,我们可以看到,当我们使用一个视图查询数据的时候,其实我们是在使用视图的元数据来查询的,当视图依赖的对象发生了变化以后,视图的元数据就需要更新,这样,使用视图时才不会违背我们的意愿。

  知道了问题的产生的原因后,那么我们在重新修改一个表或视图的脚本时,我们就需要更新依赖于该对象的视图,否则就会出现意想不到的错误。如何找到依赖于该对象的对象(包括视图,触发器,存储过程)呢?SqlServer2000在该数据库的系统表sysdepends里记录这些依赖关系,所以你可以查询该表获取你想要的信息,但其实,你可以通过使用系统提供的存储过程:sp_depends来获取该对象的所依赖的对象(返回的第一个表)以及依赖于该对象的对象(返回的第二个表),脚本如下:

  --查询vCustomersA的依赖的对象以及依赖于vCustomersA的对象

  exec sp_depends 'vCustomersA'

  查询的结果如下图:

  注:sp_depends的代码是公开的,有兴趣的可以看一下其实现过程。

  到此,你应该明白,当你更新你的表或视图的时候,你还要刷新依赖于这些对象的视图的元数据,即需要调用sp_refreshview来刷新依赖于该对象的视图。但是你在查询依赖于一个表或者视图的对象集合的时候需要注意的一点是,在你更新了一个表或视图之后,那些之前创建的依赖于该表或视图的依赖关系将会丢失(你更新的表或视图所依赖的对象集合不会丢失),用我之前的例子来看,vCustomersB依赖于vCustomersA,那么当我们修改了vCustomersA以后,vCustomersB与vCustomersA之间的依赖关系将会丢失而vCustomersA所依赖的Customers将不会丢失(依赖关系在对象创建或更新时创建,更新时,会把先前的依赖关系删掉)。(调用sp_depends你就可以看出来这种微妙的变化)。

  希望在你阅读了本文以后,你在使用视图的时候会更加的得心应手,避免错误发生。


在SQL Server 2000的视图中小心使用*符号
 在SQL Server 2000的视图中小心使用*符号(一)
 在SQL Server 2000的视图中小心使用*符号(二) 

原文出处:http://www.51test.net/show/635218.html
 
来源:无忧考网    
 
 
 
 
 

SQL Server数据库设计与建模

 
如果把商业现货(COTS)数据建模工具与定制的数据建模应用相比,会发现它们在数据建模方面有很大的差别。
 
使用SQL Server Analysis Services MDX语句,可以很容易地实现像这种具有父子维关系类型的层次结构。
 
SQL Server 2005 中的父子维,解决了如何处理在一个表当中一些记录与本表中其它记录相关联的这样一个常见业务问题。
 
一个范围标记了刻度的一个特定区域,它有助于突出特定的值。例如,在一个间隔为1到10的刻度中,我们可能会考虑添加一个从8到10的范围来突出这些目标数值。
 
现在,双子星项目已经更名为Microsoft PowerPivot,DBA及开发人员可以将目光再转向另外一个SQL Server 2008 R2的功能:Project Madison。

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录