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