我正在寻找使用对象资源管理器或使用 sp_helptext 查看 SQL Server 2005 中系统视图和过程的文本。
实际上我来自 SQL Server 2000 背景,我们具有直接使用 SQL Server 2000 企业管理器检索视图代码和存储过程的功能,但我仍然无法在 SQL Server 2005 管理中找到此功能Studio 并且仍在寻找相同的功能来获取 SQL Server 2005 中的视图和过程文本。
请帮助我。
我正在寻找使用对象资源管理器或使用 sp_helptext 查看 SQL Server 2005 中系统视图和过程的文本。
实际上我来自 SQL Server 2000 背景,我们具有直接使用 SQL Server 2000 企业管理器检索视图代码和存储过程的功能,但我仍然无法在 SQL Server 2005 管理中找到此功能Studio 并且仍在寻找相同的功能来获取 SQL Server 2005 中的视图和过程文本。
请帮助我。
您是否有权访问 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
这个 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_columns
和sys.system_sql_modules
. 逆向工程脚本中的查询可以很容易地通过使用这些表来获得系统项的定义。
如果您只想查看定义过程的文本:
右键单击存储过程,然后选择修改。这将显示定义存储过程的 SQL。
或者:右键单击,将存储过程编写为,创建到,新建查询编辑器窗口。
其他答案更高级,但我想也许你在问一个简单的问题:)
以下是列出所有动态管理视图的方法:
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)
我尝试过的所有结果都相同。