设为首页 收藏本站
查看: 857|回复: 0

[经验分享] SQL Server联机丛书:查看存储过程

[复制链接]

尚未签到

发表于 2016-11-1 10:26:19 | 显示全部楼层 |阅读模式
  几个系统存储过程用系统表提供有关存储过程的信息。使用这些存储过程可以:



  • 查看用于创建存储过程的 Transact-SQL 语句。这对于没有用于创建存储过程的 Transact-SQL 脚本文件的用户是很有用的。
  • 获得有关存储过程的信息(如存储过程的所有者、创建时间及其参数)。
  • 列出指定存储过程所使用的对象及使用指定存储过程的过程。此信息可用来识别那些受数据库中某个对象的更改或删除影响的过程。


查看存储过程的定义


sp_helptext
  显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。

语法
  sp_helptext [ @objname = ] 'name'

参数
  [@objname =] 'name'
对象的名称,将显示该对象的定义信息。对象必须在当前数据库中。name 的数据类型为 nvarchar(776),没有默认值。

返回代码值
  0(成功)或 1(失败)

结果集
  



列名
数据类型
描述


Text
nvarchar(255)
对象定义文本


注释
  sp_helptext 在多个行中显示用来创建对象的文本,其中每行有 Transact-SQL 定义的 255 个字符。这些定义只驻留在当前数据库的 syscomments 表的文本中。

权限
  执行权限默认授予 public 角色。

示例
  下面的示例显示 employee_insupd 触发器的文本,该触发器在数据库 pubs 中。

USE pubs
EXEC sp_helptext 'employee_insupd'

  <!--RELATEDTOPICSLIST-->



查看有关存储过程的信息 sp_help

  报告有关数据库对象(sysobjects 表中列出的任何对象)、用户定义数据类型或 Microsoft® SQL Server™ 所提供的数据类型的信息。

语法
  sp_help [ [ @objname = ] name ]

参数
  [@objname =] name
sysobjects 中的任意对象的名称,或者是在 systypes 表中任何用户定义数据类型的名称。Name 的数据类型为 nvarchar(776),默认值为 NULL。不能使用数据库名称。

返回代码值
  0(成功)或 1(失败)

结果集
  返回的结果集取决于 name 是否已指定、何时指定以及它是何种数据库对象等因素。



  • 如果执行不带参数的 sp_help,则返回当前数据库中现有的所有类型对象的摘要信息。

    列名
    数据类型
    描述


    Name
    nvarchar(128)
    对象名


    Owner
    nvarchar(128)
    对象所有者


    Object_type
    nvarchar(31)
    对象类型

  • 如果 name 是 SQL Server 数据类型或用户定义数据类型,则 sp_help 返回此结果集。

    列名
    数据类型
    描述


    Type_name
    nvarchar(128)
    数据类型名称。


    Storage_type
    nvarchar(128)
    SQL Server 类型名称。


    Length
    smallint
    数据类型的物理长度(以字节为单位)。


    Prec
    int
    精度(总的数字位数)。


    Scale
    int
    小数点右边的数字位数。


    Nullable
    varchar(35)
    指明是否允许 NULL 值:是或否。


    Default_name
    nvarchar(128)
    绑定到该类型的默认值名称。如果没有绑定默认值,则为 NULL。


    Rule_name
    nvarchar(128)
    绑定到该类型的规则名称。如果没有绑定默认值,则为 NULL。


    Collation
    sysname
    数据类型的排序规则。如果是非字符数据类型,则为 NULL。

  • 如果 name 是任意数据库对象(而不是数据类型),那么 sp_help 将返回此结果集,以及基于指定对象类型的其它结果集。

    列名
    数据类型
    描述


    Name
    nvarchar(128)
    表名


    Owner
    nvarchar(128)
    表的所有者


    Type
    nvarchar(31)
    表的类型


    Created_datetime
    datetime
    创建的日期表


    根据指定的数据库对象,sp_help 返回其它结果集。
    如果 name 是系统表、用户表或者视图,则 sp_help 返回这些结果集(例外,对于视图,不返回描述数据文件在文件组中所处位置的结果集)。

    • 按列对象返回其它结果集:

      列名
      数据类型
      描述


      Column_name
      nvarchar(128)
      列名。


      Type
      nvarchar(128)
      列数据类型。


      Computed
      varchar(35)
      指出是否计算了在列中的值:(是或否)。


      Length
      int
      以字节为单位的列长度。


      Prec
      char(5)
      列精度。


      Scale
      char(5)
      列数值范围。


      Nullable
      varchar(35)
      指出在列中是否允许 NULL 值:是或否。


      TrimTrailingBlanks
      varchar(35)
      剪裁尾随空格(是或否)。


      FixedLenNullInSource
      varchar(35)
      只是为了向后兼容。


      Collation
      sysname
      列的排序规则。如果是非字符数据类型,则为 NULL。

    • 按标识列返回的其它结果集:

      列名
      数据类型
      描述


      Identity
      nvarchar(128)
      其数据类型被声明为标识的列名。


      Seed
      numeric
      标识列的起始值。


      Increment
      numeric
      此列中的值所使用的增量。


      Not For Replication
      int
      当重复登录(例如 sqlrepl)试图在表中插入数据时,无法强制使用 IDENTITY 属性:
      1 = True
      0 = False

    • 按列返回的其它结果集:

      列名
      数据类型
      描述


      RowGuidCol
      sysname
      全局唯一标识符列的名称。

    • 按文件组返回的其它结果集:

      列名
      数据类型
      描述


      Data_located_on_filegroup
      nvarchar(128)
      数据所在的文件组(主要文件组、次要文件组或事务日志)。

    • 按索引返回的其它结果集:

      列名
      数据类型
      描述


      index_name
      sysname
      索引名。


      index_description
      varchar(210)
      索引的描述。


      index_keys
      nvarchar(2078)
      生成索引所在列的列名。

    • 按约束返回的其它结果集

      列名
      数据类型
      描述


      constrain_type
      nvarchar(146)
      约束的类型。


      constrain_name
      nvarchar(128)
      约束名。


      delete_action
      nvarchar(9)
      指明 DELETE 操作是:无操作、层叠或暂缺。  (仅适用于 FOREIGN KEY 约束。)




      update_action
      nvarchar(9)
      指明 UPDATE 操作是:无操作、层叠或暂缺。  (仅适用于 FOREIGN KEY 约束。)




      status_enabled
      varchar(8)
      指明是否启用约束:启用、禁用或暂缺。(仅适用于 CHECK 和 FOREIGN KEY 约束。)


      Status_for_replication
      varchar(19)
      指明约束是否用于复制。(仅适用于 CHECK 和 FOREIGN KEY 约束。)


      constrain_keys
      nvarchar(2078)
      构成约束的列名。或者(对于默认值和规则而言)指定义默认值或规则的文本。

    • 按引用对象返回的其它结果集:

      列名
      数据类型
      描述


      Table is referenced by
      nvarchar(516)
      识别引用表的其它数据库对象。



  • 如果 name 是系统存储过程或扩展存储过程,那么 sp_help 将返回此结果集。

    列名
    数据类型
    描述


    Parameter_name
    nvarchar(128)
    存储过程参数名。


    Type
    nvarchar(128)
    存储过程参数的数据类型。


    Length
    smallint
    最大物理存储长度(以字节为单位)。


    Prec
    int
    精度(总的数字位数)。


    Scale
    int
    小数点右边的数字个数。


    Param_order
    smallint
    参数的顺序。


注释
  sp_help 过程仅在当前数据库中查找对象。
  当没有指定 name 时,sp_helptrigger 列出当前数据库中所有对象的名称、所有者和对象类型。sp_helptrigger 提供有关触发器的信息。

权限
  执行权限默认授予 public 角色。

示例

A. 返回有关所有对象的信息
  下面的示例列出有关 sysobjects 中每个对象的信息。

USE master
EXEC sp_help

B. 返回有关单个对象的信息
  下面的示例显示有关 publishers 表的信息。

USE pubs
EXEC sp_help publishers
查看存储过程的相关性
sp_depends


  显示有关数据库对象相关性的信息(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表和视图)。
不报告对当前数据库以外对象的引用。
语法
  sp_depends [ @objname = ] 'object'
参数
  [@objname =] 'object'
被检查相关性的数据库对象。对象可以是表、视图、存储过程或触发器。Object 的数据类型为 varchar(776),没有默认值。
返回代码值
  0(成功)或 1(失败)
结果集
  sp_depends 显示两个结果集。
  下面的结果集显示 object 所依赖的对象。


列名
数据类型
描述


name
nvarchar(40)
存在相关性的项目名称。


type
nvarchar(16)
项目类型。


updated
nvarchar(7)
是否更新项目。


selected
nvarchar(8)
项目是否用于 SELECT 语句。


column
sysname
存在相关性的列或参数。


  下面的结果集显示依赖 object 的对象。


列名
数据类型
描述


name
nvarchar(40)
存在相关性的项目名称。


type
nvarchar(16)
项目类型。


注释
  若一个对象引用另一个对象,则认为前者依赖后者。sp_depends 通过查看 sysdepends 表确定相关性。

权限
  执行权限默认授予 public 角色。

示例
  下面的示例列出依赖 Customers 表的数据库对象。

USE Northwind
EXEC sp_depends 'Customers'

查看关于扩展存储过程的信息

sp_helpextendedproc

  显示当前定义的扩展存储过程,以及此过程(函数)所属动态链接库的名称。
语法
  sp_helpextendedproc [ [@funcname = ] 'procedure' ]
参数
  [@funcname =] 'procedure'
是要显示其信息的扩展存储过程的名称。procedure 的数据类型为 sysname,默认值为 NULL。
返回代码值
  0(成功)或 1(失败)
结果集


列名
数据类型
描述


name
sysname
扩展存储过程的名称。


dll
nvarchar(255)
动态链接库的名称。


注释
  指定 procedure 时,sp_helpextendedproc 报告指定扩展存储过程的信息。不提供 procedure 时,
sp_helpextendedproc 返回全部扩展存储过程的名称,以及每个扩展存储过程所属的 DLL 名称。

权限
  执行权限默认授予 public 角色。

示例

A. 报告所有扩展存储过程的帮助
  下面的示例报告所有扩展存储过程的信息。

USE master
EXEC sp_helpextendedproc

B. 报告单个扩展存储过程的帮助
  下面的示例报告 xp_cmdshell 扩展存储过程的信息。

USE master
EXEC sp_helpextendedproc xp_cmdshell

转自: http://goaler.xicp.net/ShowLog.asp?ID=517
<!--RELATEDTOPICSLIST-->

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294192-1-1.html 上篇帖子: SQL Server BOM展开方法整理 下篇帖子: SQL Server 存储过程 的 基础介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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