Sql Server - 获取现有视图的视图创建语句

时间:2009-12-07 19:23:37

标签: sql-server views

有没有办法获取为SQL Server 2008中的现有视图创建视图的语句?我以为有一个存储过程或一些元数据有这些数据,但我找不到任何东西。

6 个答案:

答案 0 :(得分:17)

答案 1 :(得分:6)

右键单击视图并编写脚本。

答案 2 :(得分:6)

它在sys.sql_modules。其他模式表(如INFORMATION_SCHEMA)仅包含定义的前4000个字符(它们被截断)。

答案 3 :(得分:2)

右键单击View name,然后左键单击“SCRIPT VIEW as”,然后左键单击“ALTER TO”,然后左键单击“NEW QUERY EDITOR WINDOW” - 宾果游戏,你的!要打印,请单击脚本屏幕,然后使用工具栏打印机图标发送到打印机,或单击文件>>打印。当然,小心退出而不做任何更改。这对存储过程的作用相同。

答案 4 :(得分:2)

您可以将脚本视为代码,然后将其粘贴到编辑器中,如下所示:

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

并插入所需的视图名称。

答案 5 :(得分:1)

为防止将来对某人有所帮助,以下是我整理的一个小脚本,用于为数据库中的所有视图输出创建脚本。

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