消息 266,级别 16,状态 2,过程 URM_P_REFRESHVIEW_ALL,第 0 行
EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 0,当前计数 = 1。
消息 3998,级别 16,状态 1,第 1 行
在批处理结束时检测到不可提交的事务。该事务将回滚。
DECLARE @I INT,@CNT INT,@VIEWNAME SYSNAME,@J INT
DECLARE @VIEWDICT TABLE(RID INT IDENTITY(1,1),VIEWNAME SYSNAME)
DECLARE @ERRORINFO TABLE(RID INT IDENTITY(1,1),VIEWNAME SYSNAME,INFO VARCHAR(2000))
INSERT INTO @VIEWDICT
SELECT [name] FROM sys.objects where [type]='V' ORDER BY [name]
SET @I=1
SELECT @I=1,@CNT=COUNT(*) FROM @VIEWDICT
WHILE @I<=@CNT
BEGIN
SELECT @VIEWNAME=VIEWNAME FROM @VIEWDICT WHERE RID=@I
BEGIN TRY
EXEC ('SP_REFRESHVIEW ['+@VIEWNAME+']')
END TRY
BEGIN CATCH
INSERT INTO @ERRORINFO(VIEWNAME,INFO)
SELECT @VIEWNAME,ERROR_MESSAGE()
END CATCH
SET @I=@I+1
END