几个系统存储过程用系统表提供有关存储过程的信息。使用这些存储过程可以:
显示规则、默认值、未加密的存储过程、用户定义函数、触发器或视图的文本。
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'
报告有关数据库对象(sysobjects 表中列出的任何对象)、用户定义数据类型或 Microsoft® SQL Server™ 所提供的数据类型的信息。
sp_help [ [ @objname = ] name ]
[@objname =] name
是 sysobjects 中的任意对象的名称,或者是在 systypes 表中任何用户定义数据类型的名称。Name 的数据类型为 nvarchar(776),默认值为 NULL。不能使用数据库名称。
0(成功)或 1(失败)
返回的结果集取决于 name 是否已指定、何时指定以及它是何种数据库对象等因素。
列名 | 数据类型 | 描述 |
---|---|---|
Name | nvarchar(128) | 对象名 |
Owner | nvarchar(128) | 对象所有者 |
Object_type | nvarchar(31) | 对象类型 |
列名 | 数据类型 | 描述 |
---|---|---|
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 | 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) | 识别引用表的其它数据库对象。 |
列名 | 数据类型 | 描述 |
---|---|---|
Parameter_name | nvarchar(128) | 存储过程参数名。 |
Type | nvarchar(128) | 存储过程参数的数据类型。 |
Length | smallint | 最大物理存储长度(以字节为单位)。 |
Prec | int | 精度(总的数字位数)。 |
Scale | int | 小数点右边的数字个数。 |
Param_order | smallint | 参数的顺序。 |
sp_help 过程仅在当前数据库中查找对象。
当没有指定 name 时,sp_helptrigger 列出当前数据库中所有对象的名称、所有者和对象类型。sp_helptrigger 提供有关触发器的信息。
执行权限默认授予 public 角色。
下面的示例列出有关 sysobjects 中每个对象的信息。
USE master EXEC sp_help
下面的示例显示有关 publishers 表的信息。
USE pubs EXEC sp_help publishers
显示有关数据库对象相关性的信息(例如,依赖表或视图的视图和过程,以及视图或过程所依赖的表和视图)。
不报告对当前数据库以外对象的引用。语法
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 角色。
下面的示例报告所有扩展存储过程的信息。
USE master EXEC sp_helpextendedproc
下面的示例报告 xp_cmdshell 扩展存储过程的信息。
USE master EXEC sp_helpextendedproc xp_cmdshell
转自: http://goaler.xicp.net/ShowLog.asp?ID=517