我是SQL Server的新手。我通过SQL Server Management Studio登录到数据库。
我有一个存储过程列表。如何查看存储过程代码?
右键单击存储过程没有诸如的任何选项view contents of stored procedure
。
谢谢。
Answers:
右键单击存储的过程,然后选择脚本存储过程,将其创建为“创建到新查询编辑器”窗口/剪贴板/文件
您也可以在右键单击名称时进行修改
如果一次要处理1个以上的进程,请单击存储过程文件夹,按CTRL键,按F7键,然后单击选择所有所需的,然后右键单击并选择脚本存储过程为CREATE。
我想这是查看存储过程代码的更好方法:
sp_helptext <name of your sp>
这是查看存储过程定义的另一种方法
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP'))
建议使用对象资源管理器并将存储过程编写脚本到新的查询编辑器窗口中的其他答案以及其他查询都是可靠的选择。
我个人喜欢使用以下查询在单行中检索存储的过程定义/代码(我使用的是Microsoft SQL Server 2014,但看起来这应该适用于SQL Server 2008及更高版本)
SELECT definition
FROM sys.sql_modules
WHERE object_id = OBJECT_ID('yourSchemaName.yourStoredProcedureName')
有关sys.sql_modules的更多信息:
您可以使用此查询查看存储在数据库中的所有对象代码:
USE [test] --Database Name
SELECT
sch.name+'.'+ob.name AS [Object],
ob.create_date,
ob.modify_date,
ob.type_desc,
mod.definition
FROM
sys.objects AS ob
LEFT JOIN sys.schemas AS sch ON
sch.schema_id = ob.schema_id
LEFT JOIN sys.sql_modules AS mod ON
mod.object_id = ob.object_id
WHERE mod.definition IS NOT NULL --Selects only objects with the definition (code)
如果像我这样没有权限进行“修改”,则可以安装一个名为“ SQL Search”的免费工具(通过redgate)。我用它来搜索我知道将在SP中使用的关键字,它会返回SP代码的预览,并突出显示关键字。
巧妙!然后,我将此代码复制到自己的SP中或在其中查看