sp_helptext (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

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

Transact-SQL 语法约定

语法

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 对象目录视图来获得等效的结果。

权限

要求 公共 角色具有成员身份。 系统对象定义对所有用户可见。 用户对象的定义对具有下列任一权限的对象所有者或被授权者可见:ALTERCONTROL、或TAKE OWNERSHIPVIEW DEFINITION

示例

A. 显示触发器的定义

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

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)))