首页新闻找找看学习计划

SQLSERVER我删除了某一张表的某一个字段, 怎么知道他导致了哪些视图错

0
悬赏园豆:10 [待解决问题]

SQLSERVER我删除了某一张表的某一个字段,

怎么知道他导致了哪些视图错误,我某些视图用到了这个字段

 

我写了个游标获得所有的视图,然后去执行这些视图,catch到错误就输出表名

可是SQL Server最多只让返回100个结果,执行到第100个视图的时候就报错

 

请问有什么好的方法吗?我记得在oracle上如果视图编译不通过会直接显示个X号的

SQL server有什么方法?

grayboy的主页 grayboy | 初学一级 | 园豆:190
提问于:2013-04-27 16:23
< >
分享
所有回答(4)
0
DECLARE MyCursor CURSOR FORWARD_ONLY FOR
SELECT [NAME] FROM sysobjects s WHERE s.xtype='V' --AND s.name LIKE 'FSVW_%'

BEGIN
    DECLARE @Name VARCHAR(50)
    OPEN MyCursor
        FETCH NEXT FROM MyCursor INTO @Name
        WHILE(@@FETCH_STATUS<>-1)
        BEGIN
            BEGIN TRY  
                SET NOCOUNT ON 
                EXEC sp_refreshview @viewname=@Name
            END TRY
            BEGIN CATCH
                PRINT @Name
            END CATCH
            
            FETCH NEXT FROM MyCursor INTO @Name
        END
    CLOSE MyCursor
    DEALLOCATE MyCursor
END

自己解决了,找到了sp_refreshview 存储过程

grayboy | 园豆:190 (初学一级) | 2013-04-27 16:31
0

学习ing·····我没有用过游标,请教一下博主,这个有什么作用?具体做什么?

不负春光,努力生长 | 园豆:1382 (小虾三级) | 2013-04-27 16:35

找到所有编译不通过的视图

支持(0) 反对(0) grayboy | 园豆:190 (初学一级) | 2013-04-27 16:45
0

如果没有动态语句可以 sp_depends '表名' 查找关联的对象。

gw2010 | 园豆:1368 (小虾三级) | 2013-04-27 16:37
0

连接查询需要的数据看看

◆◇▁演绎、 | 园豆:221 (菜鸟二级) | 2013-04-27 23:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册