Foxtable(狐表)用户栏目专家坐堂 → 游标循环出错时如何跳到下一个值继续执行?


  共有3376人关注过本帖树形打印复制链接

主题:游标循环出错时如何跳到下一个值继续执行?

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/4 17:07:00 [显示全部帖子]

以下是引用HappyFt在2018/10/4 16:52:00的发言:
数据库导出不是很方便.

 

能否单独做个类似的例子上来测试,不然无法排错。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/4 19:59:00 [显示全部帖子]

你给的sql语句,无法直接运行。能否直接把数据库文件或者备份发上来测试。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/4 20:13:00 [显示全部帖子]

以下是引用HappyFt在2018/10/4 20:12:00的发言:
备份文件2.42M,超出了2M不能上传,怎么办?

 

不能压缩成rar上传?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/4 20:35:00 [显示全部帖子]

我测试了一下前面的语句没有问题。

 

请贴出你要执行的sql语句,以及测试方式,以及你需要的测试效果。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/4 22:48:00 [显示全部帖子]

参考

 
begin
    DECLARE @names NVARCHAR(MAX);
    DECLARE @name VARCHAR(40);
    DECLARE @result int;
     SET @names = '';
     
    DECLARE MyCursor CURSOR
    FOR
        SELECT  name
        FROM    dbo.sysobjects
        WHERE   OBJECTPROPERTY(id, N'IsView') = 1
                AND ( NOT name IN ( 'sysconstraints', 'syssegments' )
                    );
    OPEN MyCursor;
    FETCH NEXT FROM MyCursor
    INTO @name;
    WHILE ( @@fetch_status <> -1 )
        BEGIN
            IF ( @@fetch_status <> -2 )
                BEGIN
                   BEGIN TRY
                       EXEC sp_refreshview @name;
                    END TRY
                    BEGIN CATCH
                        SET @names = @names + ',' + @name --记录出错的视图
                        ROLLBACK;
                        FETCH NEXT FROM MyCursor INTO @name;

                    END CATCH;
                END;
            FETCH NEXT FROM MyCursor
        INTO @name;
        END;
    CLOSE MyCursor;
    DEALLOCATE MyCursor;
    PRINT @names;
end

[此贴子已经被作者于2018/10/4 22:47:57编辑过]

 回到顶部