有没有办法获取为SQL Server 2008中的现有视图创建视图的语句?我以为有一个存储过程或一些元数据有这些数据,但我找不到任何东西。
答案 0 :(得分:17)
你看过sp_helptext吗?
SQL SERVER – Stored Procedure to display code (text) of Stored Procedure, Trigger, View or Object
答案 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