[原创]写了一个sqlserver批量刷新视图更新视图的脚本
2016-3-10 14:23sqlserver的表结构发生变更后(比如添加列),使用了这些表的视图的输出列往往串位。这时候需要调用刷新视图的存储过程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