SQL Server 2005中的系统视图文本

时间:2009-01-11 07:25:35

标签: sql-server-2005 views system

我正在寻找使用object explorer或使用sp_helptext在SQL Server 2005中查看系统视图和过程的文本。

实际上我来自SQL Server 2000背景,我们有直接使用SQL Server 2000企业管理器检索视图代码和存储过程的功能,但我仍然无法在SQL中找到此功能Server 2005 Management Studio,仍在寻找相同的功能,以便在SQL Server 2005中获取视图和过程文本。

请帮助我。

4 个答案:

答案 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_columnssys.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)

我试过的所有结果都给出了相同的结果。