1

我正在寻找使用对象资源管理器或使用 sp_helptext 查看 SQL Server 2005 中系统视图和过程的文本。

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

请帮助我。

4

4 回答 4

3

您是否有权访问 SQL Server Management Studio?它现在是 sys.sp_helptext 并且可以在对象浏览器中的 master --> Programmability --> Stored Procedures --> System Stored Procedures 中浏览并执行

exec sys.sp_helptext ObjectName

您要查找的所有信息都可以在syscomments表中找到,该表存储了所有视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的定义。SQL 定义语句存储在“text”列中。

select text from syscomments  where id =
OBJECT_id('objectname')
order by colid
于 2009-01-11T07:34:42.697 回答
1

这个 Stackoverflow 帖子有一个数据库逆向工程脚本(除其他外)逆向工程师查看定义。从剧本

-- 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. 逆向工程脚本中的查询可以很容易地通过使用这些表来获得系统项的定义。

于 2009-01-11T09:44:15.697 回答
0

如果您只想查看定义过程的文本:

右键单击存储过程,然后选择修改。这将显示定义存储过程的 SQL。

或者:右键单击,将存储过程编写为,创建到,新建查询编辑器窗口。

其他答案更高级,但我想也许你在问一个简单的问题:)

于 2009-01-11T09:53:50.717 回答
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)

我尝试过的所有结果都相同。

于 2009-01-11T10:41:33.787 回答