Sql server 如何查看SQL Server 2008 R2中无法修改的存储过程的定义?

Sql server 如何查看SQL Server 2008 R2中无法修改的存储过程的定义?,sql-server,stored-procedures,sql-server-2008-r2,Sql Server,Stored Procedures,Sql Server 2008 R2,我试图查看驻留在SQL Server 2008 R2中运行的数据库中的存储过程。我在[dbName]>可编程性>存储过程>dbo.[sprocName]下找到了存储过程,但它旁边有一个小挂锁图标,当我右键单击它进行修改时,修改选项变灰 然后,我尝试通过如下方式查询数据库中的对象来访问定义: use [dbName]; select * from sys.sql_modules where definition LIKE '%[sprocName]%' 这不会产生所需存储过程的定义,但查询确实适

我试图查看驻留在SQL Server 2008 R2中运行的数据库中的存储过程。我在
[dbName]>可编程性>存储过程>dbo.[sprocName]
下找到了存储过程,但它旁边有一个小挂锁图标,当我右键单击它进行修改时,修改选项变灰

然后,我尝试通过如下方式查询数据库中的对象来访问定义:

use [dbName];
select * from sys.sql_modules
where definition LIKE '%[sprocName]%'
这不会产生所需存储过程的定义,但查询确实适用于我已经可以修改的存储过程

如何查看此存储过程的定义而不获得修改权限

更新 似乎存储过程实际上是基于以下错误消息加密的:

TITLE: Microsoft SQL Server Management Studio
------------------------------

Script failed for StoredProcedure 'dbo.[sprocName]'.  (Microsoft.SqlServer.Smo)

------------------------------
ADDITIONAL INFORMATION:

Property TextHeader is not available for StoredProcedure '[dbo].[sprocName]'. This property may not exist for this object, or may not be retrievable due to insufficient access rights.  
    The text is encrypted. (Microsoft.SqlServer.Smo)

为了做到这一点,你将需要拥有所有必要的权限(基本上是SA),但这里有一个网站,你应该能够按照它来解决问题


可能重复此问题:@MartinSmith-虽然我承认您指定的问题中有相关信息,但我的问题与该用户的不同。@quakkels-是的,对不起,我同意。要查看定义而不获得SQL Server内的修改权限,您需要获得该权限。在尝试@liebs19发布的链接中的某些解决方案后,我可以根据收到的错误消息确认存储过程已加密。