Hallo,
Wenn ich einer Tabelle eine Spalte hinzufügen, dann gehen alle abhängigen Views kaputt, die die Tabelle mit einem Wildcard (*) verwenden.
Ist dieses Verhalten beabsichtigt?
Beispiel:
select 1 as a,2 as b ,3 as c into tblTest go create VIEW ViewTest1 AS SELECT tblTest.*, 1 as testv1, 2 as testv2 FROM tblTest go create VIEW ViewTest2 AS SELECT tblTest.*, 1 as testv1, 2 as testv2 FROM tblTest go ALTER TABLE tblTest ADD test12 int null EXECUTE sp_refreshview 'ViewTest1' -- ViewTest2 is broken now. (all columns moved 1 place to the right.) select testv1, testv2 from ViewTest1
select testv1, testv2 from ViewTest2 drop view ViewTest1 drop view ViewTest2 drop table tblTest
Ergebnis:
testv1 testv2 ----------- ----------- 1 2 testv1 testv2 ----------- ----------- NULL 1
Weitere Beobachtung:
Wenn das Wildcard am Ende steht, dann geht die View nicht kaputt. Das SP sp_refreshview repariert die View wieder. Das Phänomen tritt mit SQLServer 2014 und mit SQLServer 2012 auf.