System Views text in SQL Server 2005

ⅰ亾dé卋堺 提交于 2019-12-24 07:13:42

问题


I am looking for viewing the text of the system views and procedures in SQL Server 2005 using the object explorer or using sp_helptext.

actually i am coming from the SQL Server 2000 background, where we have the feature of retreiving the code of the view and the stored procedure using SQL Server 2000 Enterprise manager directly, but still i am unable to find this feature in the SQL Server 2005 Management Studio and still looking for the same feature for getting the view and procedure text in SQL Server 2005.

Kindly please help me in this.


回答1:


Do you have access to SQL Server Management Studio? It is now sys.sp_helptext and can be browsed at master --> Programmability --> Stored Procedures --> System Stored Procedures in the object browser and executed with

exec sys.sp_helptext ObjectName

All the information you are looking for can be found in the syscomments table which stores the definitions of all views, rules, defaults, triggers, CHECK constraints, DEFAULT constraints, and stored procedures. The SQL definition statements are stored in the "text" column.

select text from syscomments  where id =
OBJECT_id('objectname')
order by colid



回答2:


This Stackoverflow posting has a database reverse engineering script that (amongst other things) reverse engineers view definitions. From the script

-- 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

Note that #views is populated earlier in the script with a list of views to dump out. To select for a particular schema (also from the script)

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

To get stored procedures, substitute 'P'; to get functions substitute 'FN' or 'TF'

In the master database the definitions for the system stored procedures live in sys.system_views, 'sys.system_objects, 'sys.system_columns, and sys.system_sql_modules. The queries in the reverse engineering script could be adapted fairly readily to get out the definitions of the system items by using these tables.




回答3:


If you just want to see the text that defines a procedure:

Right click the stored procedure, and choose Modify. This will show the SQL that defines the stored procedure.

Or: right click, Script Stored Procedure as, CREATE To, New Query Editor Window.

The other answers are more advanced but I thought maybe you were asking a simple question :)




回答4:


Here's how to list all the Dynamic Management Views:

SELECT * FROM sysobjects
WHERE name LIKE 'dm_%'
order by name

Unfortunately, if you run sp_helptext on these it doesn't give you much. For example,

exec sp_helptext   N'sys.dm_os_sys_info'

Returns:

CREATE VIEW sys.dm_os_sys_info AS
    SELECT *
    FROM OpenRowset(TABLE SYSINFO)

All the ones I tried gave the same result.



来源:https://stackoverflow.com/questions/432500/system-views-text-in-sql-server-2005

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!