我是SQL Server新手。我通过SQL Server Management Studio登录到我的数据库。
我有一个存储过程列表。如何查看存储过程代码?
右键单击存储过程没有任何选项,如view contents of stored procedure
。
感谢。
答案 0 :(得分:101)
我想这是查看存储过程代码的更好方法:
sp_helptext <name of your sp>
答案 1 :(得分:37)
右键单击存储过程并选择脚本存储过程创建新建查询编辑器窗口/剪贴板/文件
右键单击名称
时,也可以执行修改如果您希望一次执行多个proc,请单击存储过程文件夹,单击F7,使用CTRL并单击选择所需的所有文件夹,然后右键单击并选择脚本存储过程为< / strong>创建
答案 2 :(得分:33)
该选项名为Modify
:
这将在新查询窗口中显示存储过程的T-SQL代码,并带有ALTER PROCEDURE ...
导入功能,以便您轻松更改或修改程序并进行更新
答案 3 :(得分:11)
这是另一种查看存储过程定义的方法
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP'))
答案 4 :(得分:7)
使用以下查询: -
SELECT object_definition(object_id) as [Proc Definition]
FROM sys.objects
WHERE type='P'
答案 5 :(得分:5)
其他答案建议使用对象资源管理器并将存储过程编写脚本到新的查询编辑器窗口,其他查询是可靠的选项。
我个人喜欢使用以下查询在一行中检索存储过程定义/代码(我使用Microsoft SQL Server 2014,但看起来这应该适用于SQL Server 2008及更高版本)
22
有关sys.sql_modules的更多信息:
答案 6 :(得分:4)
sp_helptext'your_sp_name'
在管理工作室中,默认情况下,结果会以网格视图显示。如果您想在文本视图中看到它,请转到:
查询 - &gt;结果 - >结果到文本
或CTRL + T然后执行。
答案 7 :(得分:1)
如果您没有像我这样的“修改”权限,您可以安装一个名为“SQL Search”的免费工具(由redgate提供)。我用它来搜索我知道将在SP中的关键字,并返回SP代码的预览,并突出显示关键字。
巧妙!然后我将此代码复制到我自己的SP中或在
中查看答案 8 :(得分:0)
您可以使用此查询查看存储在数据库中的所有对象代码:
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)
答案 9 :(得分:0)
这是更好的方法:
SELECT object_definition(object_id)
FROM sys.objects
WHERE type='p' and name='SP_Name'