日期:2014-05-18  浏览次数:22252 次

sp_help 和 sp_helptext 的用法?它们的作用对象是什么?(表,视图还是触发器)
最好举例解释一下

------解决方案--------------------
SQL code


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'




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_helptext,如EXEC sp_helptext 'employee_insupd'
sp_help可以用来查看表的详细结构,如:EXEC sp_help 'employee',我在工作中就是这么用的