当前位置: 代码迷 >> Sql Server >> SQL 视图结构,该如何处理
  详细解决方案

SQL 视图结构,该如何处理

热度:125   发布时间:2016-04-27 19:18:31.0
SQL 视图结构
有没有办法通过SQL语句查询到视图是如何生成的?
谢谢!

------解决方案--------------------
sp_helptext
------解决方案--------------------
sp_helptext
------解决方案--------------------
SQL code
create view v1asselect top 10 *from hy_fz_productTicketInfogoexec sp_helptext v1drop view v1/************Text---------------------------------------------------------------------------------------------------------------create view v1asselect top 10 *from hy_fz_productTicketInfo
------解决方案--------------------
还有object_definition函数.
SQL code
create view v1asselect top 10 * from sysobjectsgoselect object_definition(object_id('v1')) codecode---------------------------------create view v1asselect top 10 * from sysobjects
------解决方案--------------------
也可用
SQL code
CREATE VIEW vASSELECT 1 AS IDgoSELECT text FROM syscomments WHERE ID=OBJECT_ID('v')
------解决方案--------------------
SQL code
--批量查询USE MASTERGOCREATE proc sp_MSforeachObject @objectType int=1, @command1 nvarchar(2000),  @replacechar nchar(1) = N'?',  @command2 nvarchar(2000) = null,    @command3 nvarchar(2000) = null,  @whereand nvarchar(2000) = null, @precommand nvarchar(2000) = null,  @postcommand nvarchar(2000) = nullas /* This proc returns one or more rows for each table (optionally, matching @where), with each table defaulting to its own result set */ /* @precommand and @postcommand may be used to force a single result set via a temp table. */ /* Preprocessor won't replace within quotes so have to use str(). */ declare @mscat nvarchar(12) select @mscat = ltrim(str(convert(int, 0x0002))) if (@precommand is not null)  exec(@precommand) /* Defined  @isobject for save object type */ Declare @isobject varchar(256) select @isobject= case @objectType when 1 then 'IsUserTable'         when 2 then 'IsView'         when 3 then 'IsTrigger'         when 4 then 'IsProcedure'          when 5 then 'IsDefault'            when 6 then 'IsForeignKey'         when 7 then 'IsScalarFunction'         when 8 then 'IsInlineFunction'         when 9 then 'IsPrimaryKey'         when 10 then 'IsExtendedProc'             when 11 then 'IsReplProc'         when 12 then 'IsRule'                  end /* Create the select */ /* Use @isobject variable isstead of IsUserTable string */EXEC(N'declare hCForEach cursor global for select ''['' + REPLACE(user_name(uid), N'']'', N'']]'') + '']'' + ''.'' + ''['' + REPLACE(object_name(id), N'']'', N'']]'') + '']'' from dbo.sysobjects o '        + N' where OBJECTPROPERTY(o.id, [email protected]+''') = 1 '+N' and o.category & ' + @mscat + N' = 0 '       + @whereand) declare @retval int select @retval = @@error if (@retval = 0)  exec @retval = sp_MSforeach_worker @command1, @replacechar, @command2, @command3 if (@retval = 0 and @postcommand is not null)  exec(@postcommand) return @retvalGO这样我们来测试一下:   --获得所有的存储过程的脚本:         EXEc sp_MSforeachObject @command1="sp_helptext '?' ",@objectType=4   --获得所有的视图的脚本:         EXEc sp_MSforeachObject @command1="sp_helptext '?' ",@objectType=2
  相关解决方案