您可以在 SQL Server Management Studio 中使用“对象资源管理器”菜单选项或在查询编辑器中使用 Transact-SQL 来查看存储过程的定义。 本主题介绍如何在对象资源管理器中查看过程的定义,以及如何在查询编辑器中使用系统存储过程、系统函数和对象目录视图来查看过程的定义。
**开始之前:**安全性
**若要查看过程的定义,请使用:**SQL Server Management Studio、Transact-SQL
开始之前
安全性
权限
[返回页首]
系统存储过程:sp_helptext
要求具有 public 角色的成员身份。 系统对象定义对所有用户可见。 用户对象的定义对于对象所有者或具有下列任一权限的被授权者可见:ALTER、CONTROL、TAKE OWNERSHIP 或 VIEW DEFINITION。系统函数:OBJECT_DEFINITION
系统对象定义对所有用户可见。 用户对象的定义对于对象所有者或具有下列任一权限的被授权者可见:ALTER、CONTROL、TAKE OWNERSHIP 或 VIEW DEFINITION。 db_owner、db_ddladmin 和 db_securityadmin 固定数据库角色的成员隐式具有这些权限。对象目录视图:sys.sql_modules
目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅元数据可见性配置。
如何查看存储过程的定义
您可以使用以下项之一:
SQL Server Management Studio
Transact-SQL
使用 SQL Server Management Studio
在对象资源管理器中查看过程的定义
在对象资源管理器中,连接到数据库引擎实例,然后展开该实例。
展开**“数据库”、过程所属的数据库以及“可编程性”**。
展开**“存储过程”,右键单击该过程,再单击“编写存储过程脚本为”,然后单击下列选项之一:“CREATE 到”、“ALTER 到”或“DROP 和 CREATE 到”**。
选择**“新建查询编辑器窗口”**。 这将显示过程定义。
[返回页首]
使用 Transact-SQL
在查询编辑器中查看过程的定义
系统存储过程:sp_helptext
在对象资源管理器中,连接到数据库引擎的实例。
在工具栏上,单击**“新建查询”**。
在查询窗口中,输入以下使用 sp_helptext 系统存储过程的语句。 更改数据库名称和存储过程名称以引用所需的数据库和存储过程。
USE AdventureWorks2012; GO EXEC sp_helptext N'AdventureWorks2012.dbo.uspLogError';
系统函数:OBJECT_DEFINITION
在对象资源管理器中,连接到数据库引擎的实例。
在工具栏上,单击**“新建查询”**。
在查询窗口中,输入以下使用 OBJECT_DEFINITION 系统函数的语句。 更改数据库名称和存储过程名称以引用所需的数据库和存储过程。
USE AdventureWorks2012; GO SELECT OBJECT_DEFINITION (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));
对象目录视图:sys.sql_modules
在对象资源管理器中,连接到数据库引擎的实例。
在工具栏上,单击**“新建查询”**。
在查询窗口中,输入以下使用 sys.sql_modules 目录视图的语句。 更改数据库名称和存储过程名称以引用所需的数据库和存储过程。
USE AdventureWorks2012; GO SELECT definition FROM sys.sql_modules WHERE object_id = (OBJECT_ID(N'AdventureWorks2012.dbo.uspLogError'));
[返回页首]
请参阅
参考
OBJECT_DEFINITION (Transact-SQL)
sys.sql_modules (Transact-SQL)