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

我是SQL Server的新手。 我通过SQL Server Management Studiologin到我的数据库。

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

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

谢谢。

右键单击存储过程并select脚本存储过程作为创build新build查询编辑器窗口/剪贴板/文件

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

如果你想要多于一个proc,点击存储过程文件夹,点击F7,用CTRL,然后点击select所有你想要的,然后右键单击并select脚本存储过程为 CREATE

我想这是一个更好的方式来查看存储过程的代码:

 sp_helptext <name of your sp> 

该选项被称为Modify

在这里输入图像说明

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

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

 SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP')) 

使用下面的查询: –

 SELECT object_definition(object_id) as [Proc Definition] FROM sys.objects WHERE type='P' 

如果你没有像我这样的修改权限,你可以安装一个名为“SQL Search”的免费工具(由redgate)。 我用它来search关键字,我知道这些关键字将在SP中,并且它会返回一个SP代码的预览,其中的关键字是高亮的。

巧妙! 然后我将这些代码复制到我自己的SP中或者在其中查看

sp_helptext'your_sp_name'

在pipe理工作室默认结果进来网格视图。 如果您想在文本视图中查看,请转到:

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

或CTRL + T然后执行。

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

我个人喜欢使用下面的查询检索单行中的存储过程定义/代码(我正在使用Microsoft SQL Server 2014年,但看起来像这应该与SQL Server 2008和以上)

 SELECT definition FROM sys.sql_modules WHERE object_id = OBJECT_ID('yourSchemaName.yourStoredProcedureName') 

有关sys.sql_modules的更多信息:

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