WEB开发网
开发学院数据库MSSQL Server 在SQL Server 2005中如何列出所有存储过程 阅读

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

 2008-10-08 10:08:33 来源:WEB开发网   
核心提示: 如果你想创建一个存储过程,并希望能够自动分发到所有的数据库中,在SQL Server 2005中如何列出所有存储过程(2),你可以在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,并使用了所有的默认设置时,你将看到类似一下界面:

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

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

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

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

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

表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

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

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

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

三、小结

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

请记住,当使用一个不能确定来源或结果的存储过程,应该在测试系统先验证;从来没有使用任何没有得到彻底的测试在生产环境中。

本文只是告诉各位可以用来获得SQL Server 2005中所有存储过程的方法,但不是鼓励你随意使用任何类型的存储过程,特别是无文档类型的。Microsoft一再声明:微软对所有无文档的存储过程,扩展存储过程,函数和视图,均不提供任何相关的支持。

上一页  1 2 

Tags:SQL Server 如何

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接