sp_helptext (Transact-SQL)

显示用户定义规则的定义、默认值、未加密的 Transact-SQL 存储过程、用户定义 Transact-SQL 函数、触发器、计算列、CHECK 约束、视图或系统对象(如系统存储过程)。

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

sp_helptext [ @objname = ] 'name' [ , [ @columnname = ] computed_column_name ]

参数

  • [ @objname = ] 'name'
    架构范围内的用户定义对象的限定名称和非限定名称。 仅当指定限定对象时才需要引号。 如果提供的是完全限定名称(包括数据库名称),则数据库名称必须是当前数据库的名称。 对象必须在当前数据库中。 name 的数据类型为 nvarchar(776),无默认值。

  • [ @columnname = ] 'computed_column_name'
    要显示其定义信息的计算列的名称。 必须将包含列的表指定为 name。 column_name 的数据类型为 sysname,无默认值。

返回代码值

0(成功)或 1(失败)

结果集

列名

数据类型

说明

Text

nvarchar(255)

对象定义

注释

sp_helptext 显示用于在多行中创建对象的定义。 每行包含 255 个字符的 Transact-SQL 定义。 定义位于 sys.sql_modules 目录视图中的 definition 列中。

权限

要求具有 public 角色的成员身份。 系统对象定义对所有用户可见。 用户对象的定义对于对象所有者或具有下列任一权限的被授权者可见:ALTER、CONTROL、TAKE OWNERSHIP 或 VIEW DEFINITION。

示例

A.显示触发器的定义

以下示例将显示 AdventureWorks2012 数据库中的 dEmployee 触发器的定义。

USE AdventureWorks2012;
GO
EXEC sp_helptext 'HumanResources.dEmployee';
GO

B.显示计算列的定义

以下示例将显示 AdventureWorks2012 数据库的 SalesOrderHeader 表中计算列 TotalDue 的定义。

USE AdventureWorks2012;
GO
sp_helptext @objname = N'AdventureWorks2012.Sales.SalesOrderHeader', @columnname = TotalDue ;
GO

下面是结果集:

Text

---------------------------------------------------------------------

(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))

请参阅

参考

数据库引擎存储过程 (Transact-SQL)

OBJECT_DEFINITION (Transact-SQL)

sp_help (Transact-SQL)

sys.sql_modules (Transact-SQL)

系统存储过程 (Transact-SQL)