我正在开发一个包含大量存储过程的数据库。令人沮丧的是命名约定不一致。我花了一半的时间在对象资源管理器中寻找它们。
我想知道是否有一种方法可以通过知道名称来获取SPROC的定义?就像是:
SELECT commande(name_of_SPROC) --> Display the definition of the SPROC
Run Code Online (Sandbox Code Playgroud)
任何可以帮助我获得 SPROC 定义的东西,而无需在SQL Server Management Studio的对象资源管理器中进行搜索。
感谢您的帮助
小智 5
是的,有很多方法:
1.使用系统SP:sp_helptext:
sp_helptext 'your_sp_name'
Run Code Online (Sandbox Code Playgroud)
2. 使用 INFORMATION_SCHEMA 视图:
select ROUTINE_DEFINITION, *
from INFORMATION_SCHEMA.ROUTINES
where ROUTINE_NAME = 'your_sp_name';
Run Code Online (Sandbox Code Playgroud)
3.使用sys.sql_modules视图:
select definition, *
from sys.sql_modules
where object_name(object_id) = 'your_sp_name'
Run Code Online (Sandbox Code Playgroud)
4.使用sys.syscomments视图:
select text, *
from sys.syscomments
where object_name(id) = 'your_sp_name'
Run Code Online (Sandbox Code Playgroud)
最好使用的是sp_helptext,它也非常方便和快速。我喜欢的另一个选项是sql_modules sys 视图。不要使用syscomments sys 视图,因为它将更大的 SP 分成多行,请检查此处。
| 归档时间: |
|
| 查看次数: |
899 次 |
| 最近记录: |