开发者

Sql Server - Get view creation statement for existing view

开发者 https://www.devze.com 2022-12-13 22:08 出处:网络
Is there a way to get the statement that created a view for an existing view in SQL Server 2008?I thought there was a stored pr开发者_如何学编程ocedure or some metadata that had this data, but I\'m no

Is there a way to get the statement that created a view for an existing view in SQL Server 2008? I thought there was a stored pr开发者_如何学编程ocedure or some metadata that had this data, but I'm not finding anything.


Have you had a look at sp_helptext?

sp_helptext 'dbo.name_of_view'

SQL SERVER – Stored Procedure to display code (text) of Stored Procedure, Trigger, View or Object


Right click on the view and script it.


It's in sys.sql_modules. Other schema tables like INFORMATION_SCHEMA ones only contain the first 4000 characters of the definition (they truncate).


Right click on the View name, then left click "SCRIPT VIEW as", then left click "ALTER TO", then left click "NEW QUERY EDITOR WINDOW" -- bingo, your there! To print, click on the script screen and then send to your printer using your toolbar printer icon or click on FILE>>PRINT. Of course, be careful to exit without making any changes. This works the same for stored procedures.


You can see the script as code, and copy paste it into an editor like this:

SELECT 
    v.TABLE_NAME, 
    v.VIEW_DEFINITION 
FROM 
    INFORMATION_SCHEMA.VIEWS v 
WHERE 
    v.TABLE_NAME LIKE '%%'

and insert the view name you want.


In case it helps someone in the future, here's a little script I put together to output the creation script for all views in a database.

DECLARE @definition varchar(max)
DECLARE @view CURSOR
SET @view = CURSOR FOR
    SELECT m.definition FROM sys.views v INNER JOIN sys.sql_modules m ON m.object_id = v.object_id
OPEN @view
FETCH NEXT FROM @view INTO @definition
WHILE @@FETCH_STATUS = 0 BEGIN
    PRINT @definition
    PRINT 'GO'
    FETCH NEXT FROM @view INTO @definition
END CLOSE @view DEALLOCATE @view
0

精彩评论

暂无评论...
验证码 换一张
取 消