仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1153|回复: 8
打印 上一主题 下一主题

[学习教程] 怎样使用SQL查询视图所援用的一切表

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定我们在反省视图功能时,一般会检察视图中究竟援用了那些表。固然,我们能够使用sp_helptext检察视图的界说。但在这章,我们次要解说怎样使用SQL疾速地检察指定视图所援用的一切表。

在此之前,我们先懂得一下目次视图sys.sql_dependencies,该视图的注释以下:
"在界说某些其他援用(相干)工具的SQL表达式或语句中举行援用时,被援用(自力)实体的每一个相干性在表中均对应一行。任何工具或列的界说属性包括SQL表达式时,都能够有相干性"
下面的注释大概对照拗口,复杂的了解就是假如在某个SQL界说(如:视图,函数,触发器等)中假如援用了某个表,那末就会在sys.sql_dependencies中存在一条对应的纪录。并且,假如援用了这个表的多个列,那末就会有多笔记录。

sys.sql_dependencies前往的主要的列:
object_id--界说的工具ID(在本章就是指我们要查询的视图名)
referenced_major_id--被援用的实体的ID(在本章就是被援用表的称号)
referenced_minor_id--被援用的实体的列的ID(在本章就是被援用表的列的ID)

人人能够经由过程select*fromsys.sql_dependencies检察了局就可以分明了。

懂得了这些,前往视图所援用一切表的SQL语句就变的很复杂了,示比方下:
selectdistinctobject_name(referenced_major_id)asreferencednamefromsys.sql_dependencies


假如还必要查询出一切被援用的列,可使用以下SQL语句:
selectobject_name(A.object_id)asobject_name,B.NameasColumnName
fromsys.sql_dependenciesA
leftjoinsys.columnsBonA.referenced_minor_id=B.column_idandA.referenced_major_id=B.object_id


延长:由于在视图中除援用表以外,另有大概援用函数等,以是我们还应当查询出所援用实体的范例,示例SQL以下:
declare@viewnamevarchar(50)
set@viewname=v_Salary--假定的视图名
select@viewnameasname,
nameasreferencedname,
type--所援用实体的范例
fromsys.objects
wherenamein(
selectdistinctobject_name(referenced_major_id)asreferencedname
fromsys.sql_dependencies
whereobject_id=object_id(@viewname))


以上就是本节一切内容了,假如有不合错误大概更好的办法,请人人在批评中会商,配合参进,才会更出色!导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。
乐观 该用户已被删除
沙发
发表于 2015-1-18 12:11:40 | 只看该作者
总感觉自己还是不会SQL
简单生活 该用户已被删除
板凳
发表于 2015-1-26 16:27:58 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-4 20:42:23 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
第二个灵魂 该用户已被删除
5#
发表于 2015-2-10 09:30:23 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
不帅 该用户已被删除
6#
发表于 2015-3-1 09:37:56 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
变相怪杰 该用户已被删除
7#
发表于 2015-3-10 16:41:11 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
透明 该用户已被删除
8#
发表于 2015-3-17 09:10:23 | 只看该作者
也可谈一下你是怎么优化存储过程的?
飘灵儿 该用户已被删除
9#
发表于 2015-3-24 05:24:06 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 19:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表