it-frosch
Goto Top

Tabelle kennt neue Spalte nicht

Guten Abend,

irgendwie stehe ich total auf dem Schlauch.

Umgebung:
MS SQL 2008 R2 Standard
SQL Server Management Studio

Ich habe in einer Tabelle eine Spalte NeueSpalte mit dem Datentyp DATETIME hinzugefügt und wollt mir eine Prozedur anlegen, die diese Spalte verwendet.
Beim Anlegen der Prozedur bekam ich immer die Meldung, das eine Spalte nicht existiert.

Also habe ich mit
 Select * from Tabelle 

geprüft, ob die Spalte in der Tabelle angezeigt wird. Sie wird anzeigt.

Wenn ich mir allerdings nur bestimmte Spalten anzeigen lassen will mit:
 Select a.idnr, a.NeueSpalte from Tabelle a 
dann wird im Query Fenster der Name der neuen Spalte rot unterstrichen also ob sie nicht existieren würde.
Auch wird mir, wenn ich die Tabelle mit Alias selektiere, das neue Feld in der Liste der Felder der Tabelle auch nicht angezeigt.

Ich habe bisher hauptsächlich mit Firebird SQL gearbeitet und erweitere eine Tabelle in MS SQL zum ersten Mal.

Mir ist schon bei erstellten Views aufgefallen, das diese über die nicht über das Syntax Highlighting oder wie man das nennt, angezeigt werden.

Kann mir mal jemand mit mehr MS SQL Erfahrung aufs Pferd helfen?
Danke.

grüße vom it-frosch

Content-Key: 233749

Url: https://administrator.de/contentid/233749

Ausgedruckt am: 28.03.2024 um 11:03 Uhr

Mitglied: Friemler
Friemler 26.03.2014 um 22:01:11 Uhr
Goto Top
Hi it-frosch.

Have you tried turning it off and on again? face-wink

Gemeint ist das Server Management Studio.

Gruß
Friemler
Mitglied: it-frosch
it-frosch 27.03.2014 um 10:07:40 Uhr
Goto Top
Hi Friemler,

Have you tried turning it off and on again? face-wink
Ja habe ich auch schon.

Mir ist auch aufgefallen, dass im Context Menü der Tabelle unter Script Table as der Punkt ALTER TO** inaktiv ist.
Die Spalte hatte ich mittels Script hinzugefügt.

grüße vom it-frosch
Mitglied: MadMax
Lösung MadMax 27.03.2014 aktualisiert um 19:17:50 Uhr
Goto Top
Hallo it-frosch,

heißt die neue Spalte wirklich NeueSpalte oder irgendwie anders? Und bist Du sicher, daß der Fehler von dieser Spalte herrührt? So ein Fehler kann z.B. auftreten, wenn Sonderzeichen wie '-' im Spaltennamen vorkommen. Dann müßte der Spaltenname in eckige Klammern gesetzt werden, damit es trotzdem funktioniert.

Zwar weiß ich, daß Du Erfahrung im Umgang mit DBen hast, aber ich habe keine Ahnung, ob Firebird solche Bezeichner vielleicht zuläßt.

Und daß im Management Studio in der Abfrage einiges rot unterstrichen ist, hat nichts zu heißen, das kommt vom Intellisense und heißt nicht, daß es die Spalte nicht gibt. Im Management Studio müßte er aber in der Fehlermeldung unten ausgeben, welche Spalte ihm fehlt.

Gruß, Mad Max
Mitglied: it-frosch
it-frosch 27.03.2014 um 19:06:04 Uhr
Goto Top
Hallo Mad Max,

NeueSpalte ist ein Platzhalter, da der Name der Spalte nichts zur Sache tut.face-wink
Verbotene Zeichen sind nicht verwendet worden.

Heute früh wurde die Spalte übrigens ohne Probleme gefunden, nur die neue wieder nicht, die ich testweise darauf hin angelegt habe.
Ich konnte die Spalte von gestern auch in der Feldliste auswählen.

Mein Notebook war die ganz Nacht an, da hat sich also nichts geändert.
Bleibt jetzt nur noch die Vermutung, das auf dem MS SQL Server nachts eine Routine läuft, die so etwas einarbeitet.
Das ist aber sehr komisch! So etwas kann ich mir fast nicht vorstellen.

Im Management Studio müßte er aber in der Fehlermeldung unten ausgeben, welche Spalte ihm fehlt.
Wenn ich rot unterstrichene Spalte in einer Prozedur verwenden will, meckert er auch. face-smile

grüße vom it-frosch
Mitglied: it-frosch
it-frosch 27.03.2014 aktualisiert um 19:30:10 Uhr
Goto Top
Hallo,

So jetzt die Auflösung.

Man sollte Proceduren nicht nach 21 Uhr anfangen. face-wink
Ich hatte wirklich einen Schreibfehler bei dem Feld.

Dein Hinweis auf Intellisense war gut. Ich habe mir das gleich mal in den Optionen angeschaut.

Man muss, wenn Intellisense zeitnah funktionieren soll, nach Änderungen immer mal den Local Cache von Intellisense refreshen (Strg + Shift + R)
Findet man auch im Menü unter Edit - Intellisense - Local Cache Refresh .

grüße vom it-frosch