我正在寻找使用object explorer或使用sp_helptext在SQL Server 2005中查看系统视图和过程的文本。
实际上我来自SQL Server 2000背景,我们有直接使用SQL Server 2000企业管理器检索视图代码和存储过程的功能,但我仍然无法在SQL中找到此功能Server 2005 Management Studio,仍在寻找相同的功能,以便在SQL Server 2005中获取视图和过程文本。
请帮助我。
答案 0 :(得分:3)
您是否可以访问SQL Server Management Studio?它现在是sys.sp_helptext,可以在master上浏览 - >可编程性 - >存储过程 - >对象浏览器中的系统存储过程并使用
执行exec sys.sp_helptext ObjectName
您要查找的所有信息都可以在syscomments表中找到,该表存储所有视图,规则,默认值,触发器,CHECK约束,DEFAULT约束和存储过程的定义。 SQL定义语句存储在“text”列中。
select text from syscomments where id =
OBJECT_id('objectname')
order by colid
答案 1 :(得分:1)
This Stackoverflow posting有一个数据库逆向工程脚本(其中包括)逆向工程师查看定义。从脚本
-- This generates view definitions
--
select definition + char(10) + 'go' + char(10)
from sys.sql_modules c
join sys.objects o
on c.object_id = o.object_id
join #views o2
on o.object_id = o2.object_id
请注意,先前在脚本中填充了#views
,其中包含要转储的视图列表。选择特定模式(也来自脚本)
select o.name
,o.object_id
into #views
from sys.objects o
join sys.schemas s
on s.schema_id = o.schema_id
where o.type in ('V')
and s.name = @schema
要获取存储过程,请替换“P”;获取函数替换'FN'或'TF'
在master
数据库中,系统存储过程的定义位于sys.system_views
,'sys.system_objects , 'sys.system_columns
和sys.system_sql_modules
中。逆向工程脚本中的查询可以很容易地进行调整,以通过使用这些表来获得系统项的定义。
答案 2 :(得分:0)
如果您只想查看定义过程的文本:
右键单击存储过程,然后选择“修改”。这将显示定义存储过程的SQL。
或者:右键单击,脚本存储过程为,创建为,新查询编辑器窗口。
其他答案更为先进,但我想也许你问了一个简单的问题:)
答案 3 :(得分:0)
以下是列出所有动态管理视图的方法:
SELECT * FROM sysobjects
WHERE name LIKE 'dm_%'
order by name
不幸的是,如果你在这些上运行sp_helptext它不会给你太多。例如,
exec sp_helptext N'sys.dm_os_sys_info'
返回:
CREATE VIEW sys.dm_os_sys_info AS
SELECT *
FROM OpenRowset(TABLE SYSINFO)
我试过的所有结果都给出了相同的结果。