Benutzer mit den meisten Antworten
Plötzlich wieder alter Stand vom Select im View

Frage
-
Hallo, guten Morgen und frohes Neues zusammen.
Ich hatte gerade mal wieder ein eigenartiges Phänomen, welches schon ein Paar mal aufgetaucht ist, ich es aber dann immer als "Einbildung" abgehakt hatte.
ich habe auf meinem SQL Server 2008 Enterprise views, aus denen ich u.a. Tabellen befülle, Reports versorge etc.
eine dieser Views hatte ich vor ca einem halben Jahr um ein Feld erweitert und alles war gut. Heute Morgen geht mir ein Report des Report Servers auf die Nase, weil er das Feld nicht finden kann.
Ich mach die View auf, und tatsächlich, die view hat wieder den Stand von vor einem halben Jahr.
Zum Glück nutze ich einen Source Safe und konnte dort den aktuellen Stand wieder laden.
Ist das ein bekanntes Problem? Cached der Server alte Stände irgendwo?
Ich steh vor einem Rätzel.
Gruß Andre
Antworten
-
Hallo Andre,
- sonst was, das könnte es sein;-)
das "sonst was" war in so gut wie allen mir bekannten Fällen die Einspielung eines (alten) Backups. In einigen wenigen Fällen war es ein vom Benutzer durchgeführter Abgleich (bspw. mittels Red Gate SQL Compare), der als Quelle einen älteren Stand hatte.
Ganz, ganz selten könnte es auch sein, dass die View gar nicht in diesem Schema geändert wurde bzw. sich das Standardschema einen Accounts geändert hat und im Zielschema noch eine View mit der "alten" Struktur vorhanden ist.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Montag, 31. Januar 2011 13:21
-
Guten Morgen Henry,
das kann für ALTER und CREATE aber nicht sein. Diese beiden T-SQL-Befehle benötigen zwingend ein GO bevor sie ausgeführt werden. Dennoch ist die Idee nicht ganz so abwegig, wenn...
das Erstellen der View mittels eines sp_executeSQL ausgeführt wird. Dann nämlich wäre die obige Einschränkung obsolet, da ja ein eigener Prozess angestossen wird.
Eine Möglichkeit, schnell dem "Objekt" auf die Schliche zu kommen, sollte aber auch erwähnt werden.... :-)
Mit...
SELECT OBJECT_NAME(id), Text FROM dbo.syscomments WHERE text LIKE '%CREATE%DeineView%' OR text LIKE '%ALTER%DeineView%'
Uwe Ricken
Microsoft Certified Database Administrator SQL Server 2005
db Berater GmbH
http://www-db-berater.de- Als Antwort markiert Robert BreitenhoferModerator Montag, 31. Januar 2011 13:20
Alle Antworten
-
Hallo Andre,
ich arbeite jetzt seit über 13 Jahren mit SQL Server aber von so einem Phänomen habe ich noch nie gehört!
Ich vermute eher, dass ...- ein anderer Programmierer (SourceSafe / meherere Programmierer?)
- eine Applikation ?
- sonst was...die alte View wieder implementiert.
Ich möchte Deine Beobachtungen nicht als "Einbildung" bezeichnen - es gibt sicherlich einen trifftigen Grund für das von Dir geschilderte Phänomen...
Uwe Ricken
Microsoft Certified Database Administrator SQL Server 2005
db Berater GmbH
http://www-db-berater.de -
Hallo Uwe,
- wir programmieren nur zu zweit und er Kollege wars auch nicht. (also wirklich nicht)
- eine Applikation die eine View ändert, haben wir nicht im Einsatz.
- sonst was, das könnte es sein;-)
Ich werde es noch mal weiter beobachten.
Danke für deine Antwort
Andre
-
Hallo Andre,
- sonst was, das könnte es sein;-)
das "sonst was" war in so gut wie allen mir bekannten Fällen die Einspielung eines (alten) Backups. In einigen wenigen Fällen war es ein vom Benutzer durchgeführter Abgleich (bspw. mittels Red Gate SQL Compare), der als Quelle einen älteren Stand hatte.
Ganz, ganz selten könnte es auch sein, dass die View gar nicht in diesem Schema geändert wurde bzw. sich das Standardschema einen Accounts geändert hat und im Zielschema noch eine View mit der "alten" Struktur vorhanden ist.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Montag, 31. Januar 2011 13:21
-
Hallo AndreVielleicht war's ein fehlerhafter Job, der z.B. das anlegen der View in einen Trigger eingefügt hat.Mir ist mal was ähnliches passiert. Da hatte ich am Ende des Jobs, der den Trigger angelegt hat, noch ein paar andere SQL Statements drin, die einige Literale geändert haben. Und wenn wir dann später diese Literale auf neuere Werte geändert haben, wurden diese plötzlich und scheinbar unmotiviert wieder auf die alten Werte zurückgesetzt, wenn jemand einen Datensatz in einer bestimmten Tabelle geändert hat. Nur das haben wir natürlich nicht gewusst und Monatelang nach Geistern gesucht, die unsere Daten von Zeit zu Zeit wieder auf alte Werte zurücksetzen. Schliesslich habe ich die Statements am Ende des Triggers gefunden, die das reinkamen, weil ein GO im Migrationsjob auf die neuere Version gefehlt hat.Falls Ihr also da nichts macht, scripte mal die Datenbank und suche nach diesem View in den erzeugten Scripts, falls Du diese nicht sonst findest. Irgendwo wird die View ja wieder auf den alten Wert zurückgesetzt.GrussHenry<AndreT78> wrote in message news:142ad46f-4baf-415f-bf06-e4fc12fd7301@communitybridge.codeplex.com...
Hallo Uwe,
- wir programmieren nur zu zweit und er Kollege wars auch nicht. (also wirklich nicht)
- eine Applikation die eine View ändert, haben wir nicht im Einsatz.
- sonst was, das könnte es sein;-)
Ich werde es noch mal weiter beobachten.
Danke für deine Antwort
Andre
-
Guten Morgen Henry,
das kann für ALTER und CREATE aber nicht sein. Diese beiden T-SQL-Befehle benötigen zwingend ein GO bevor sie ausgeführt werden. Dennoch ist die Idee nicht ganz so abwegig, wenn...
das Erstellen der View mittels eines sp_executeSQL ausgeführt wird. Dann nämlich wäre die obige Einschränkung obsolet, da ja ein eigener Prozess angestossen wird.
Eine Möglichkeit, schnell dem "Objekt" auf die Schliche zu kommen, sollte aber auch erwähnt werden.... :-)
Mit...
SELECT OBJECT_NAME(id), Text FROM dbo.syscomments WHERE text LIKE '%CREATE%DeineView%' OR text LIKE '%ALTER%DeineView%'
Uwe Ricken
Microsoft Certified Database Administrator SQL Server 2005
db Berater GmbH
http://www-db-berater.de- Als Antwort markiert Robert BreitenhoferModerator Montag, 31. Januar 2011 13:20