SQLServer中系统视图的详细介绍

该系列本来想写什么,然后想想你作为一个程序员,大多数数据库,但事实上,在这行代码很多和我一样的人,一知半解的SQL,不谈基础数据库的优化和理解,我也是这样的…

一:系统视图

1是什么。系统的观点吗

你知道从系统视图的名称吗多么好的一个猜测是储存一些信息在SQLServer数据库系统。好的,祝贺你,对吗。

2个在哪里。定义

为了让你的眼睛看到真相,让我们看看下面的截图。从截图中,您可以看到系统数据库和用户数据库都有这些系统视图,并且一目了然地发现,即使名称相同。





三.看到这些系统视图给我带来什么好处了吗

Q1:当我维护一个系统时,我只知道有一个数据库表字段被称为状态,但是我忘记在表中定义它了吗我怎样才能找到它

A1:很容易提供SQLServer、系统观称为information_schema.columns,让我们看一看下面的截图。



从这个模式中,系统的名称在视图中原来是一个保存表的架构视图,也是字段的限定符,这些属性的默认值,泥炭是一种很酷的感觉吗

Q2:,我看到了一个存储过程的名字cateryinsert C #代码。我想看看它的源代码,但是我的表中有成千上万的存储过程,所以我不能让我一个人去。请,你有一个快速的方式看到它在系统视图

这么简单。我告诉你,只有你不能想到它,没有系统视图不能完成,不是简单的看存储过程代码吗sys.sql_modules可以帮你实现它。





Q3:这个方法很好,但是复制的定义字段没有格式化。大哥,成千上万行的SQL。我特别想格式化的输出做什么谢谢你u3002

的确,正如您所说,如果格式化输出,系统视图只能在这里帮助您,但没有出路。你可以使用系统存储过程,和它有一个神奇的sp_helptext,这样你就可以实现你的梦想。

U3000 U3000

二:关于制度观的几点思考

在上面的代码中,我演示了两个系统视图和进程的好处。如果你仔细看看,你会有两个怀疑。

1:系统视图定义在哪里

这个问题很好。从文章的开头,我们知道我的用户库mypetshop有许多系统的观点,但我真的没有定义这些视图。上帝可以给我一个证明,那个问题很神秘。系统视图从何而来你还要问SQLServer团队,他们把系统查看到隐藏的资源数据库,在数据库我会帮你找到的。



找到它后,我现在继续添加它。如果你足够聪明,你不能直接加载它,否则你会报告进程正在使用中,我想你知道它。



解决方案也很简单,我们复制一个E盘,然后添加拷贝。



现在我已经加入了,我的感觉是我迫不及待地想看到它。仔细截图后,我想你应该知道些什么。这些视图不在系统视图文件夹下,但实际上是用户视图,对吗



2:系统视图的数据源在哪里

这也是一个非常经典的问题,因为它是视图,我想每个人都知道它实际上是虚拟表的意思,因为它是一个虚拟表,基表在哪里这个问题,我要把我的mypetshop数据库。



可以看出,上面的系统基表是空的,黄鹤走了,白色的云是空的。更大的问题是,如果基表不是,那么DB中的系统视图到底是谁这难道不是个大忽悠吗但这是真的吗因为你不知道它是不是真的,你可以继续用系统的观点来祝福我们,然后用sys.objects找出。



嗯,我可能会说这么多,还不早,洗过睡了。