在SQL Server 2005中如何列出所有存储过程

密码丢了Cao

密码丢了Cao

2016-02-19 19:35

下面图老师小编要跟大家分享在SQL Server 2005中如何列出所有存储过程,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

  为了查找这些存储过程,你可以花时间在互联网搜索,查看一些你还未知道的存储过程,也许在一两个小时您可能会发现你想要...也许你很幸运的找到,其他人在他们的文章中列出所有的存储过程 ,函数和视图,并介绍了如何使用这些存储过程。

  但其实,您可以在一分钟之内就可以自己列出这些存储过程、函数和视图的清单!这份名单甚至包括SQL Server中所有无文档的存储过程。通过这个清单,你就可以确定你所想要找的存储过程。

  SQL Server 2005实际上保存了所有存储过程的列表,包括有文档的、无文档的,甚至是用户自定义的!所有这些信息,都包含在系统表中。最简单的方法是使用一个系统视图,特别是sys.all_objects这个视图来查阅。

  您也可以使用sys.procedures目录视图,但我的测试结果,发现这个视图会过滤掉一些储存过程。

  您也可以使用系统储存过程sp_stored_procedures返回当前环境中的存储过程列表 ,但这个存储过程同样也限制了存储过程返回值。

  通过对比,我觉得:如果想获得SQL Server 2005中所有的储存程序,建议使用sys.all_objects这个系统视图,sys.Procedures或sp_Stored_Procedures这两个视图会因为某些未知原因,过滤掉一些内容,造成信息不全。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  存储过程信息是存储在各自用户数据库中的系统表中的。SQL Server 2005保存了存储过程的唯一标识信息,如存储过程的名称、创建时间、修改时间、是否来自微软等等。

  如何确保所有的用户数据库都能够自动创建这些存储过程呢?

  当SQL Server部署完成后,微软提供的存储过程,是保存在master数据库中的。当您新建一个数据库时,master数据库将作为模板数据库,因此,master数据库中的所有存储过程将自动创建到你所新建的数据库中。

  如果你想创建一个存储过程,并希望能够自动分发到所有的数据库中,你可以在master数据库中建立该存储过程,这样之后新创建的数据库中,将自动包含你新建的这个存储过程;但对于之前已经存在的数据库,你仍需要到每个数据库中手动创建这个存储过程。

  一、列出所有的储存过程

  以下代码列出了SQL Server 2005中存在的所有储存过程。

  USE[your_database_name_here];
  GO
  SELECT*FROMsys.all_objects
  WHERE([type]='P'OR[type]='X'OR[type]='PC')
  ORDERBY[name];
  GO

  如果您已经安装了SQL Server 2005,并使用了所有的默认设置时,你将看到类似一下界面:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

图1:列出所有的存储过程

  上面这个命令,通过Type对象进行过滤。从下表中,你可以确定自己所需的对象的类型,然后根据你的实际情况,调整WHERE子句中的类型。

  此列表仅列出了意见,职能和程序。

表1: type字段的类别及对象返回类型

  二、用户自定义存储过程

  在日常使用中,另一个字段“is_ms_shipped”也经常用来筛选记录。该字段用来判断存储过程是有微软发布的 ,如果最初是由微软发布的,则该字段的值为0;如果不是由微软发布的,则该字段的值为1 。

  在上面的T-SQL语句的基础上,您只要增加个限制条件“and [ is_ms_shipped ] = 0 ”,就可以找到不是微软创建的存储过程,这些或许是你或者第三方软件商访问数据库时创建的。如果您只想看看微软提供的储存过程,只要将值从0到1即可 。


  下面举例说明,通过一个T-SQL代码演示如何获取只有用户定义的存储过程。

  USE[your_database_name_here];
  GO
  SELECT*FROMsys.all_objects
  WHERE([type]='P'OR[type]='X'OR[type]='PC')
  AND[is_ms_shipped]=0
  ORDERBY[name];
  GO

  需要注意的是,这个语句的执行结果,因每个人的数据库的情况不同,而得到不同的记录列表。情况而异。执行之后,将看到类似下图的输出结果。

图2: 列出用户自定义的存储过程

  三、小结

  通过上面的例子可以看到,通过少量代码,我们就可以很容易地、快速地获得自己所用的SQL Server 的存储过程列表,你不必在一个个网站中搜索这些存储过程了。你可能会学到一个之前自己花了很大精力编写的复杂脚本,现在直接用一个存储过程就可以实现同样的效果了。

  请记住,当使用一个不能确定

展开更多 50%)
分享

猜你喜欢

在SQL Server 2005中如何列出所有存储过程

编程语言 网络编程
在SQL Server 2005中如何列出所有存储过程

在SQL Server 2005中用存储过程实现搜索功能

编程语言 网络编程
在SQL Server 2005中用存储过程实现搜索功能

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server 2005 存储过程写报表举例

编程语言 网络编程
SQL Server 2005 存储过程写报表举例

在Access中模拟sql server存储过程翻页

编程语言 网络编程
在Access中模拟sql server存储过程翻页

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在SQL Server存储过程中执行DTS包

SQLServer
在SQL Server存储过程中执行DTS包

在SQLServer 2005中编写存储过程

编程语言 网络编程
在SQLServer 2005中编写存储过程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题

如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题

什么是交换机的“链路聚合”功能?

什么是交换机的“链路聚合”功能?
下拉加载更多内容 ↓