View übernimmt Änderungen nicht

30/10/2009 - 08:42 von Thomas Weiler | Report spam
Hallo,

verstehe gerade die Welt nicht mehr ;).

SQL Server 2000

Habe folgende Views:

UView1:

select spalte1,spalte2,spalte3 from tabelle1

UView2:

select spalte1,spalte2,spalte3 from tabelle2


OView

select * from UView1
union all
select * from UView2


Funktioniert soweit.

Nun àndere ich die beiden UViews ab:

select spalte1,spalte2,spalte22,spalte222,spalte3 from tabelle1 (und
tabelle2)

Wenn ich nun den OView ausführe, fehlen die beiden neuen Spalten
(spalte22 und spalte222), der View wird also so angezeigt wie vor der
Änderung. Führe ich die beiden UViews direkt aus wird alles korrekt
angezeigt. Ebenso wenn ich das select im OView direkt ausführe (also
per copy and paste in den Query Analyzer übernehme).

Cached der SQL-Server 2000 hier etwas? Normalerweise müsste doch auch
der OView sofort die beiden neuen Spalten anzeigen.

Danke für alle Antworten.
 

Lesen sie die antworten

#1 Josef Poetzl
30/10/2009 - 09:08 | Warnen spam
Hallo!

Thomas Weiler schrieb:
[...]
OView
select * from UView1
union all
select * from UView2

Funktioniert soweit.
Nun àndere ich die beiden UViews ab:

select spalte1,spalte2,spalte22,spalte222,spalte3 from tabelle1 (und
tabelle2)

Wenn ich nun den OView ausführe, fehlen die beiden neuen Spalten
(spalte22 und spalte222), der View wird also so angezeigt wie vor der
Änderung.



Mit
| EXECUTE sp_refreshview N'dbo.OView'
sollte die Sicht die Aktualisierung übernehmen.

Auszug aus MSSQL-Doku zu sp_refreshview:
| If a view is not created with schemabinding, sp_refreshview should be
| run when changes are made to the objects underlying the view that
| affect the definition of the view. Otherwise, the view might produce
| unexpected results when it is queried.

mfg
Josef

Ähnliche fragen