[原创]写了一个sqlserver批量刷新视图更新视图的脚本

2016-3-10 14:23

sqlserver的表结构发生变更后(比如添加列),使用了这些表的视图的输出列往往串位。这时候需要调用刷新视图的存储过程sp_refreshview刷新视图。删除视图后重建或者修改视图也能行。sp_refreshview的帮助在这里 https://msdn.microsoft.com/en-us/library/ms187821(v=sql.90).aspx。开发中往往视图很多又不好挑,所以做个sql脚本批量更新最方便了。脚本新鲜出炉,如下



DECLARE MyCursor CURSOR
FOR select TABLE_SCHEMA, TABLE_NAME from INFORMATION_SCHEMA.Views where table_schema = 'DPR';

DECLARE @schema varchar(200), @name varchar(200), @fullname varchar(400)
OPEN MyCursor

FETCH NEXT FROM MyCursor INTO @schema, @name
WHILE (@@fetch_status = 0)
BEGIN

	set @fullname = QUOTENAME(@schema) + '.' + QUOTENAME(@name);
    exec sp_refreshview @fullname;
	print @fullname + ' ok';

    FETCH NEXT FROM MyCursor INTO @schema, @name;

END

CLOSE MyCursor
DEALLOCATE MyCursor

 

点击:loading..
收藏到:中国收客网
评论