今天我注意到当我更改视图中的表时,如果没有运行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会保持静态,有一些方法可以自动执行此过程吗?
答案 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