sp_help (Transact-SQL)
报告有关数据库对象(sys.sysobjects 兼容视图中列出的所有对象)、用户定义数据类型或某种数据类型的信息。
语法
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)
表所有者
类型
nvarchar(31)
表类型
Created_datetime
datetime
表的创建日期
根据指定的数据库对象,sp_help 将返回其他结果集。
如果 name 是系统表、用户表或视图,则 sp_help 将返回下列结果集。但是,不会为视图返回说明数据文件在文件组中位置的结果集。
返回的有关列对象的其他结果集:
列名
数据类型
说明
Column_name
nvarchar(128)
列名。
类型
nvarchar(128)
列数据类型。
Computed
varchar(35)
指示是否计算列中的值:“是”或“否”。
Length
int
以字节为单位的列长度。
注意如果列数据类型是大值类型(varchar(max)、nvarchar(max)、varbinary(max) 或 xml),该值将显示为 -1。Prec
char(5)
列精度。
Scale
char(5)
列小数位数。
Nullable
varchar(35)
指示是否允许列中包含 NULL 值:“是”或“否”。
TrimTrailingBlanks
varchar(35)
剪裁尾随空格。返回 Yes 或 No。
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)
要生成索引的列的列名。
针对约束返回的其他结果集:
列名
数据类型
说明
constraint_type
nvarchar(146)
约束的类型。
constraint_name
nvarchar(128)
约束的名称。
delete_action
nvarchar(9)
指示 DELETE 操作是:No Action、CASCADE 还是 N/A。
仅适用于 FOREIGN KEY 约束。
update_action
nvarchar(9)
指示 UPDATE 操作是:No Action、Cascade 还是 N/A。SET_NULL 和 SET_DEFAULT 显示为无操作。
仅适用于 FOREIGN KEY 约束。
status_enabled
varchar(8)
指示是否启用约束:Enabled、Disabled 或 N/A。SET_NULL 和 SET_DEFAULT 显示为无操作。
仅适用于 CHECK 和 FOREIGN KEY 约束。
status_for_replication
varchar(19)
指示约束是否用于复制。
仅适用于 CHECK 和 FOREIGN KEY 约束。
constraint_keys
nvarchar(2078)
构成约束的列的名称。对于默认值和规则而言,则为定义默认值或规则的文本。
针对执行引用的对象返回的其他结果集:
列名
数据类型
说明
Table is referenced by
nvarchar(516)
标识引用表的其他数据库对象。
针对存储过程、函数或扩展存储过程返回的其他结果集:
列名
数据类型
说明
Parameter_name
nvarchar(128)
存储过程参数名。
类型
nvarchar(128)
存储过程参数的数据类型。
Length
smallint
最大物理存储长度(以字节为单位)。
Prec
int
精度,即数字总位数。
Scale
int
小数点右边的数字位数。
Param_order
smallint
参数的顺序。
注释
sp_help 过程仅在当前数据库中查找对象。
如果未指定 name,则 sp_help 将列出当前数据库中所有对象的对象名称、所有者和对象类型。sp_helptrigger 提供有关触发器的信息。
sp_help 只显示可排序的索引列;因此,它不显示关于 XML 索引或空间索引的信息。
权限
要求具有 public 角色的成员身份。用户必须至少拥有一种对 objname 的权限。若要查看列约束键、默认值或规则,必须对表具有 VIEW DEFINITION 权限。
示例
A. 返回有关所有对象的信息
以下示例将列出有关 master 数据库中每个对象的信息。
USE master;
GO
EXEC sp_help;
GO
B. 返回有关单个对象的信息
下面的示例将显示有关 Person 表中 Person 列的信息。
USE AdventureWorks2008R2;
GO
EXEC sp_help 'Person.Person';
GO