如何在alter table -T-SQL之后更新视图的syscolumns?

时间:2013-05-08 14:26:06

标签: sql sql-server tsql view alter-table

今天我注意到当我更改视图中的表时,如果没有运行sp_refreshview,则不会更新此视图的syscolumns。下面的代码显示了我在说什么

create table Test ( n1 decimal(12,4) )
go
create view VTest as Select * from Test;
go
sp_help VTest
go
alter table Test alter column n1 decimal(12,2)
go
sp_help VTest

请注意,VTest会保持静态,有一些方法可以自动执行此过程吗?

1 个答案:

答案 0 :(得分:4)

您需要致电sp_refreshview来更新视图

create table Test ( n1 decimal(12,4) )
go
create view VTest as Select * from Test;
go
sp_help VTest
go
alter table Test alter column n1 decimal(12,2)
EXEC sp_refreshview  VTest
go
sp_help VTest