笔记303 修改表结构后,如何只刷新/更新相关联的视图 2013-6-19
笔记303 修改表结构后,如何只刷新/更新相关联的视图 2013-6-19
1 --修改表结构后,如何只刷新相关联的视图 2013-6-19 2 3 4 --http://social.technet.microsoft.com/Forums/zh-CN/1c5878cc-9dc4-460f-b66d-ebd7359d37a4 5 USE AdventureWorks; 6 GO 7 --以下示例刷新视图 HumanResources.vEmployee 的元数据 8 EXECUTE sp_refreshview N'HumanResources.vEmployee'; 9 10 11 --假定表 Person.Contact 进行了更改,其更改方式影响了基于此表创建的所有视图的定义。 12 --以下示例将创建一个脚本,以便为与表 Person.Contact 有依赖关系的所有视图刷新源数据。 13 --只适用于SQL2008 14 USE AdventureWorks; 15 GO 16 SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' 17 FROM sys.objects AS so 18 INNER JOIN sys.sql_expression_dependencies AS sed 19 ON so.object_id = sed.referencing_id 20 WHERE so.type = 'V' AND sed.referenced_id = OBJECT_ID('HumanResources.Employee'); 21 22 USE [pratice] 23 GO 24 --CREATE VIEW aa AS 25 --SELECT * FROM [dbo].[SystemPara] 26 -- 27 --GO 28 29 SELECT * FROM [dbo] .[aa] 30 31 ALTER TABLE [dbo].[SystemPara] DROP COLUMN [Name] 32 33 --删除了某列之后需要刷新 34 EXECUTE sp_refreshview N'aa';