在 SQL Server 中,使用两个表创建一个视图。视图中使用的表*
之一。
然后我在表中添加一列。这现在导致视图错误。
必须重建视图来解决这个问题。
如果这张表使用了很多视图,如何识别相关视图并重建它们?
有几种方法?
谢谢!
测试环境:SQL Server 2008
测试 SQL:
if exists(select * from sys.objects where name='tblTestA' and type='u')
DROP TABLE tblTestA
create table tblTestA(Part varchar(10),Qty int)
insert into tblTestA values('A',10)
insert into tblTestA values('B',20)
go
if exists(select * from sys.objects where name='tblTestB' and type='u')
DROP TABLE tblTestB
GO
create table tblTestB(Part varchar(10),Price decimal(9,4))
GO
insert into tblTestB values('A',1.1)
insert into tblTestB values('B',2.2)
GO
if exists(select * from sys.objects where name='v_test' and type='v')
DROP VIEW v_test
go
create View v_test
as
select a.*,b.Price
from tblTestA a, tblTestB b
where a.Part=b.Part
go
执行:
select * from v_test
go
结果:
Part Qty Price
A 10 1.1000
B 20 2.2000
添加一列
alter table tblTestA add Remark nvarchar(200) not null default('test')
go
执行:
select * from v_test
go
结果:
Part Qty Price
A 10 test
B 20 test