创建视图的语句放在syscomments里面
select text,ctext from syscomments where id=object_id('viewname')

解决方案 »

  1.   

    这个比较就麻烦了如果有主键,可以根据主键对应比较,例如:
    if exists(select * from 新数据 a full join 旧数据 b on a.主键=b.主键 
        where a.字段1 is null or b.字段1 is null 
            or a.字段2 is null or b.字段2 is null 
           ....
            or a.字段n is null or b.字段n is null)
      print '数据有变化'
    else
      print '数据相同'
      

  2.   

    --如果单单是比较结构,可以试试这个/*--数据结构比较 比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)--邹建 2004.07--*//*--调用示例 --调用
    exec p_compdb 'pubs','northwind'
    --*/
    create proc p_compdb
    @db1 sysname, --第一个库
    @db2 sysname --第二个库
    as
    exec('
    select 类型=case isnull(a.xtype,b.xtype) when ''V'' then ''视图'' else ''存储过程'' end
    ,匹配情况=case 
    when a.name is null then ''库 ['+@db1+'] 中无''
    when b.name is null then ''库 ['+@db2+'] 中无''
    else ''结构不同'' end
    ,对象名称=isnull(a.name,b.name)
    from(
    select a.name,a.xtype,b.colid,b.text
    from ['+@db1+']..sysobjects a,['+@db1+']..syscomments b
    where a.id=b.id and a.xtype in(''V'',''P'') and a.status>=0
    )a full join(
    select a.name,a.xtype,b.colid,b.text
    from ['+@db2+']..sysobjects a,['+@db2+']..syscomments b
    where a.id=b.id and a.xtype in(''V'',''P'') and a.status>=0
    )b on a.name=b.name and a.xtype=b.xtype and a.colid=b.colid
    where a.name is null
    or b.name is null
    or isnull(a.text,'''')<>isnull(b.text,'''')
    group by a.name,b.name,a.xtype,b.xtype
    order by 类型,匹配情况,对象名称')
    go
      

  3.   

    我得好好研究研究,细节能不能实现 
    比如说视图某两个表连接方式由INNER JOIN 变成 left join 
    能不能把这种变化也体现出来
      

  4.   

    zjcxc(邹建):
    但要注意一点,只能简单地比较结构,无法分析功能是否相同我不知道你说的结构怎么理解  功能怎么理解结构清楚了 难道功能就不能一样了么我想实现VIEW的连接关系变化也能看出来 能实现么