sp_helptext (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
显示用户定义的规则、默认、未加密的 Transact-SQL 存储过程、用户定义的 Transact-SQL 函数、触发器、计算列、 CHECK
约束、视图或系统对象(如系统存储过程)的定义。
语法
sp_helptext
[ @objname = ] N'objname'
[ , [ @columnname = ] N'columnname' ]
[ ; ]
参数
[ @objname = ] N'objname'
用户定义的架构范围的对象的限定名称或非限定名称。 @objname为 nvarchar(776),没有默认值。 仅当指定限定对象时才需要引号。 如果提供的是完全限定名称(包括数据库名称),则数据库名称必须是当前数据库的名称。 对象必须在当前数据库中。
[ @columnname = ] N'columnname'
要为其显示定义信息的计算列的名称。 @columnname为 sysname,默认值为 NULL
. 包含列的表必须指定为 @objname。
返回代码值
0
(成功)或 1
(失败)。
结果集
列名称 | 数据类型 | 描述 |
---|---|---|
Text |
nvarchar(255) | 对象定义 |
注解
sp_helptext
显示用于在多行中创建对象的定义。 每行包含 255 个字符的 Transact-SQL 定义。 定义位于 definition
sys.sql_modules 目录视图中的列中。
注意
Azure Synapse Analytics 不支持系统存储过程 sp_helptext
。 请改用 OBJECT_DEFINITION
系统函数或 sys.sql_modules
对象目录视图来获得等效的结果。
权限
要求 公共 角色具有成员身份。 系统对象定义对所有用户可见。 用户对象的定义对具有下列任一权限的对象所有者或被授权者可见:ALTER
、CONTROL
、或TAKE OWNERSHIP
VIEW DEFINITION
。
示例
A. 显示触发器的定义
以下示例显示数据库中触发器dEmployee
AdventureWorks2022
的定义。
USE AdventureWorks2022;
GO
EXEC sp_helptext 'HumanResources.dEmployee';
GO
B. 显示计算列的定义
以下示例将显示 AdventureWorks2022
数据库的 TotalDue
表中计算列 SalesOrderHeader
的定义。
USE AdventureWorks2022;
GO
sp_helptext
@objname = N'AdventureWorks2022.Sales.SalesOrderHeader',
@columnname = TotalDue;
GO
结果集如下。
Text
---------------------------------------------------------------------
(isnull(([SubTotal]+[TaxAmt])+[Freight],(0)))