我讨厌在树视图中探索代码和数据库结构,我更喜欢使用像Powershell这样的东西。我在SQL中需要做的大部分工作都在探索,即查看表中的列或特定存储过程的作用。
查看表列就像ls'ing表的列目录一样简单,但是如何获取存储过程的内容?
答案 0 :(得分:7)
如果你想在Sql Server 2008上运行它,那么here is a Cmdlet可以帮助你。
如果您使用的是Sql Server 2005,那么这里有page with a script来帮助您解决此问题。
[编辑] 您可以使用SP sp_helptext查看所需存储过程的内容。
答案 1 :(得分:3)
他们的sproc文本存在于数据字典表中sys.sql_modules.
另外,this Stackoverflow post有一个数据字典逆向工程脚本(除其他外)从该表中获取视图定义的文本 - 逆向工程的sproc定义大致相同。
检索存储过程的程序文本的最小脚本如下所示:
select m.definition
from sys.objects o
join sys.sql_modules m
on o.object_id = m.object_id
join sys.schemas s
on s.schema_id = o.schema_id
where s.name = 'foo' -- Schema name
and o.name = 'bar' -- Sproc name