我有一个奇怪的问题。我已经创建了一个存储过程并成功执行了它。
但是当我尝试在数据库中查找它时,它不会显示过程中的代码。我的意思是,如果我右键单击并说修改以查看我的过程的代码,它只显示以下代码:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE Proc_Name
为什么它没有显示完整的代码?我从数据库中删除了该过程并再次执行,然后它说“数据库中已经有一个名为'Proc_Name'的对象。”它显示相同的代码。
答案 0 :(得分:1)
如果右键单击 - “修改”未显示存储过程的文本,请尝试以下操作:
SELECT text
FROM syscomments
WHERE id = (SELECT id FROM sysobjects WHERE name = 'proc_name')
将proc_name替换为相关存储过程的名称。
如果可行,我会考虑使用标准模板重新创建它,就像右键单击“存储过程 - 新存储过程”并清除任何奇怪格式时所获得的那样。
答案 1 :(得分:1)
use <Database name>
go
sp_helptext <procname>
或者找到程序
select * from sys.objects where name like '%<Procedure_name>%' and type='P'
答案 2 :(得分:0)
也许proc是用&#34; WITH ENCRYPTION&#34;创建的。标记以故意隐藏代码。另一种可能性是其他人是该对象的所有者,并且您没有权限访问其代码。