如何在SQL Server Management Studio中查看存储过程代码

DG3*_*DG3 57 t-sql sql-server ssms

我是SQL Server的新手.我通过SQL Server Management Studio登录到我的数据库.

我有一个存储过程列表.如何查看存储过程代码?

右键单击存储过程没有任何选项view contents of stored procedure.

谢谢.

Kni*_*lke 106

我想这是查看存储过程代码的更好方法:

sp_helptext <name of your sp>
Run Code Online (Sandbox Code Playgroud)

  • 当结果显示到文本时,此方法效果最佳([Ctrl + T键盘快捷键](http://msdn.microsoft.com/en-us/library/ms174205.aspx)). (11认同)
  • @FlorinDumitrescu-我更喜欢将其保留在网格模式下,并且执行以下操作非常快,现在对我来说是第二自然:sp_helptext YourSPName,F5,单击标题栏“ Text”,ctrl-c,在查询中单击任何位置,ctrl -a,ctrl-v,ctrl-home,ctrl-r。我之所以喜欢这样,是因为我可以突出显示语法,而不必滚动到文件的开头。(它比ctrl-t稍好一点,因为它没有在文件前添加“文本---------------”。) (2认同)

SQL*_*ace 37

右键单击存储过程并选择脚本存储过程作为 CREATE到新查询编辑器窗口/剪贴板/文件

您也可以在右键单击名称时执行修改

如果您希望一次执行多个proc,请单击存储过程文件夹,单击F7,使用CTRL并单击选择所需的所有文件夹,然后右键单击并选择脚本存储过程作为 CREATE

  • 我只是在查看程序时更喜欢"脚本存储过程为CREATE"而不是"修改",因此我不会意外地更改过程. (6认同)

mar*_*c_s 33

该选项被称为Modify:

在此输入图像描述

这将在新的查询窗口中显示存储过程的T-SQL代码,并带有ALTER PROCEDURE ...导入功能,因此您可以轻松更改或修改过程并更新它

  • 如果修改被禁用?我没有权限修改 (2认同)

sql*_*ser 11

这是查看存储过程定义的另一种方法

SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP'))
Run Code Online (Sandbox Code Playgroud)

  • 谢谢 - 当存储库锁定更新/处理时非常有用。 (2认同)

Rya*_*yan 10

exec sp_helptext 'your_sp_name' -- 不要忘记引号

在管理工作室中,默认结果以网格视图显示。如果您想在文本视图中查看它,请转到:

查询 --> 结果到 --> 结果到文本

或 CTRL + T 然后执行。


小智 7

使用以下查询: -

SELECT object_definition(object_id) as [Proc Definition]
FROM sys.objects 
WHERE type='P'
Run Code Online (Sandbox Code Playgroud)

  • 您能为将来的读者详细说明您的答案吗 (2认同)

Bri*_*.A. 6

其他答案建议使用对象资源管理器并将存储过程编写脚本到新的查询编辑器窗口,其他查询是可靠的选项.

我个人喜欢使用以下查询在一行中检索存储过程定义/代码(我使用的是Microsoft SQL Server 2014,但看起来这应该适用于SQL Server 2008及更高版本)

SELECT definition 
FROM sys.sql_modules 
WHERE object_id = OBJECT_ID('yourSchemaName.yourStoredProcedureName')
Run Code Online (Sandbox Code Playgroud)

有关sys.sql_modules的更多信息:

https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql