笔记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';

 

posted @ 2013-08-04 21:20  桦仔  阅读(370)  评论(0编辑  收藏  举报