在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用。下面的知识多是自己总结,有一些参考了MSDN。

  

sp_help

有时候想尽快查出数据库对象的相关信息,这个存储过程就很有用了。使用它可以查询出整个数据库中所有对象的相关信息。直接运行sp_help结果如下图1,上面是数据库对象,包含系统自定义的表,视图等等,下面是自定义数据类型

图1

如果我只想找到某一中数据类型的长度,精度等信息可以运行sp_help datatypename,如下图2

图2

如果我想找出某一个表的相关信息可以运行sp_help tablename,如下图3

图3

如图运行结果的第一个查出表基本信息,第二个查出所有的列,第三个查出主键信息,第四个表查出列的标识,第五个返回所在的文件组信息。

如果我想查出一个存储过程的相关信息可以像上面一样直接使用sp_help procname,如下图4

图4

这里需要注意有时候需要使用单引号将数据库对象包含起来。第一个表查出存储过程的名称等信息,第二个查出参数信息。

  

sp_helptext

有时候我们需要查出存储过程长的什么样子的,虽然可以点击Script Stored Procedure as,CREATE To,New Query Editor Window找到,如图5

图5

但是这样显得有点罗嗦,如果有很多的存储过程我们不可能很快地点击选中我们想要查的哪一个。如果使用sp_helptext procname就可以很快地找到这些信息,如图6

图6

如图,默认是使用grid显示文本,也可以使用文本格式,只要点击 Result to text就可以显示文本格式。如果你还是觉得这样不爽,关键字没有颜色,你可以选中所有文本复制到SQL文本编辑器中。同样你也可以使用sp_helptext查出数据库中的视图,函数,自定义计算列等对象的文本内容。

  

sp_helpdb

一般我们拿到客户的数据库服务器端时候,我们首选要搞清楚这个服务器上有多少个数据库,分别是那些用户创建的等等信息,你也许会直接打开这个数据库用鼠标点击查看,但是如果有很多的数据库就不那么方便了,这个时候直接运行sp_helpdb就很容易查出来了。如下图7。

图7

如图查询出了我的数据库软件中所有的数据库信息。如果我想知道某一个数据库的详细信息,可以使用sp_helpdb dbname查询,如图8。

图8

如图第一个表查出这个数据库的基本信息,第二个表查询得到这个数据库的数据库文件信息等。其他还有很多的数据库引擎存储过程例如:

sp_helpconstraint可以查出当前数据库中所遇的约束信息。

sp_helpextendedproc可以查询所有的扩展存储过程,以及所属的dll的名称,这个在上一个随笔:SQL点滴15—在SQL Server 2008中调用C#程序中提到过。

sp_helpfile和sp_helpdb dbname的效果差不多,查询当前数据库的数据库文件信息。

sp_helpfilegroup返回当前数据库的数据库文件关联的文件组的信息。

Sp_helpindex tablename返回表或视图中的索引的信息。

Sp_helplanguage返回数据库中安装的语言信息。

Sp_helpserver显示当前已经连接的所有服务器的信息。

Sp_helpsort返回服务器默认的排序规则。

  

Sys.objects

数据库开发和application开发有些不同,没有一个像CC,VSS,SVN一样的管理工具来管理代码,因为所有的代码都存放在数据库中,不要跟踪。假设我们要等待数据库设计人员建好表或存储过程后导入数据,但是迟迟不见动静,这时候我们就可以看看数据库中所有的自定义对象,按照最后更新时间来排序。运行下面的语句:select * from sys.objects where type in('U','V','P') order by modify_date

这个语句查出数据库中的所有的用户表,视图,存储过程并按时间排序,这样就可以看到别人最近添加,修改了那些数据库对象。Sys.objects不包含触发器,触发器在sys.triggers中。类似的还有sys.tables,sys.views等等。

  

information_schema

如果我们想快速查询在这个数据库中是否包含address这样的字样的列,并查出它在那个数据库中,那个表中,它的数据类型信息等,这时候使用information_schema这个架构信息就很有用了,如下图9。

图9

相同的在information_schema这个架构中还有很多的信息例如:

information_schema.tables返回表信息,

information_schema.check_constraints返回check约束信息,

information_schema.views返回视图信息,

information_schema.routines返回存储过程信息,还有很多这里不再列举。

  

总之SQL Server数据库提供了丰富的对象统计信息供我们使用,上面只是我经常用到的一部分,在这里抛砖引玉了。

SQL使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识的更多相关文章

  1. SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...

  2. Oracle数据库自动备份SQL文本:Procedure存储过程,View视图,Function函数,Trigger触发器,Sequence序列号等

    功能:备份存储过程,视图,函数触发器,Sequence序列号等准备工作:--1.创建文件夹 :'E:/OracleBackUp/ProcBack';--文本存放的路径--2.执行:create or ...

  3. SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除临时表(drop table #tableName)吗?

    本文出处:http://www.cnblogs.com/wy123/p/6704619.html 问题背景 在写SQL Server存储过程中,如果存储过程中定义了临时表,有些人习惯在存储过程结束的时 ...

  4. Sql Server数据库之存储过程

    阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程   简单来说,存储过程就是一条或 ...

  5. SQL Server数据库中的系统数据库?

    SQL Server的系统数据库分为:master,model,msdb和tempdb 1.Master数据库 Master数据库记录SQL Server系统的所有系统级别信息(表sysobjects ...

  6. 基于Spring Boot,使用JPA调用Sql Server数据库的存储过程并返回记录集合

    在上一篇<基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD>中完成了使用JPA对实体数据的CRUD操作. 那么,有些情况,会把一些查询语句写在存储过程中,由 ...

  7. vs2015中SQLSERVER数据库项目引用系统视图

    近期使用VS中的SQLSERVER数据库项目进行项目开发,由于有很多自动化脚本会访问系统视图,例如sysobjects之类的,在项目中的脚本总是提示无法解析的引用,解决办法如下: 添加数据库引用 添加 ...

  8. SQL server 数据库的索引和视图、存储过程和触发器

    1.索引:数据排序的方法,快速查询数据 分类: 唯一索引:不允许有相同值 主键索引:自动创建的主键对应的索引,命令方式不可删 聚集索引:物理顺序与索引顺序一致,只能创建一个 非聚集索引:物理顺序与索引 ...

  9. SQL SERVER 查看所有存储过程或视图里 包含某个关键字的查询语句

    SELECT name, type_desc FROM sys.all_sql_modules s INNER JOIN sys.all_objects o ON s.object_id = o.ob ...

随机推荐

  1. spm_预处理实验记录

    参考:<SPM8 MANNUAL> Chapter 28 Auditory fMRI data

  2. java基于xml配置的通用excel单表数据导入组件(四、DAO主处理类)

    package XXXXX.manage.importexcel; import java.beans.IntrospectionException; import java.io.BufferedR ...

  3. web测试方面的知识

    web测试 软件测试体系架构设计 一.体系架构 1.C/S:客户端+服务器端,如QQ.单机版记事本.office等,所用语言:VB.C++.C.C#.JAVA.PB.D…等数组语言,C和S都是自己测, ...

  4. Linux创建新用户以及useradd adduser的区别

    从阿里云那弄了个机子玩玩,系统用的是Ubuntu12.04.刚等上去时候是用root登录的,首先想到的就是创建一个用户. 使用 useradd myname 发现/home目录下没有myname的家目 ...

  5. HDOJ/HDU 1085 Holding Bin-Laden Captive!(非母函数求解)

    Problem Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for ...

  6. JavaScript---网络编程(9-2)--DHTML技术演示(2-2)-表格加强

    对上篇博客的最后那个表格隔行高亮显示加了个功能,鼠标监听和年龄从小到大排序. 演示代码: <html> <head> <title>DHTML技术演示---表格中页 ...

  7. margin-top 父div下落

    解决方法: 1.修改父元素的高度,增加padding-top样式模拟(padding-top:1px:常用) 2.为父元素添加overflow:hidden:样式即可(完美) 3.为父元素或者子元素声 ...

  8. [LeetCode] 3Sum 解题思路

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  9. Genotype&&陨石的秘密

    Genotype: Genotype 是一个有限的基因序列.它是由大写的英文字母A-Z组成,不同的字母表示不同种类的基因.一个基因可以分化成为一对新的基因.这种分化被一个定义的规则集合所控制.每个分化 ...

  10. 常用js效果:选项卡切换

    js选项卡,很多网站都会用到,我这里用jquery给整了一个简单但是却很实用的js选项卡,废话不多说,直接上代码: <style> .txtadsblk01{ width:200px;} ...