SQL Server Ungültiger Spaltenname nach Hinzufügen einer neuen Spalte

69

Ich habe gerade eine Identitätsspalte zu einer vorhandenen Tabelle mit Daten über den SSMSDesigner hinzugefügt , die Tabelle wird einwandfrei aktualisiert und ich kann eine Auswahlabfrage erfolgreich ausführen. Nach Abschluss der Abfrage habe ich jedoch festgestellt, dass die neue Spalte rot unterstrichen ist und ein Fehler angezeigt wird Es ist ein ungültiger Spaltenname.

Warum tritt das auf? Ich würde erwarten, dass die Abfrage fehlschlägt, wenn die Spalte ungültig ist.

Behält das SSMS eine Art internen Verweis auf die alte Tabelle bei, die geleert werden muss?

Ich habe versucht, die DB-Verbindung zu schließen und erneut zu öffnen, aber immer noch der gleiche Fehler. Ich bin mir nicht sicher, was ich hier vermisse.

SELECT TOP 100 
[PRIMARY_NDX_Col1],
[NEW_Col], --QUERY EXECUTES SUCCESSFULLY, BUT THIS IS UNDERLINED RED AS AN INVALID COLUMN
[Col3]
FROM [dbo].[MyTable]
kingrichard2005
quelle
3
Ich habe gerade versucht, neu zu starten, und das hat es behoben. Ich frage mich, ob es eine Möglichkeit gibt, den SSMS 2008-Cache nach dem Bearbeiten einer Tabelle dynamisch zu löschen. Dies scheint die Art von Fehler zu sein, die Menschen stundenlang versuchen könnten, Fehler zu beheben.
kingrichard2005
Sie müssen SSMS nicht neu starten, um dies zu beheben. Halten Sie diesen Artikel griffbereit. Eine der häufigsten Ursachen ist, dass SSMS beim Aktualisieren des lokalen Metadaten-Cache nicht schnell genug ist. mssqltips.com/sqlservertip/2591/…
Aaron Bertrand
Bitte erläutern Sie, warum die Antworten für diese Frage nicht akzeptabel sind, damit Verbesserungen vorgenommen werden können. @ AaronBertrand gute Tipps da drin!
Mark Schultheiss

Antworten:

191

du kannst entweder

  • Drücken Sie Ctrl+ Shift+R

ODER

  • Gehen Sie zu Bearbeiten >> IntelliSense >> Lokalen Cache aktualisieren
David Brabant
quelle
Es tut mir leid, dass ich dies hier nach einem Jahr frage. Ich verwende SQL Server 2000-Anzeige. Ich habe kein Steuerelement STRG + UMSCHALT + R oder etwas namens IntelliSense und ich bekomme das gleiche Problem. Irgendeine Idee ?
Nejthe
Nur ein paar Infos: "Wenn eine aktuell verwendete Ansicht mithilfe von ALTER VIEW geändert wird, verwendet das Datenbankmodul eine exklusive Schemasperre für die Ansicht. Wenn die Sperre gewährt wird und keine aktiven Benutzer der Ansicht vorhanden sind, wird das Datenbankmodul gelöscht Alle Kopien der Ansicht aus dem Prozedurcache. Bestehende Pläne, die auf die Ansicht verweisen, verbleiben im Cache, werden jedoch beim Aufrufen neu kompiliert. " technet.microsoft.com/en-us/library/ms173846.aspx (siehe den Abschnitt mit den Bemerkungen)
Danny Bullis
Ich habe ein Problem damit, ich hatte einen Spaltennamen aus dem Design geändert und die Tabelle gespeichert. Ich habe den lokalen Intellisense-Cache aktualisiert ... Jetzt in der Abfrage funktionieren die Änderungen und die Redline für Fehler reagiert, aber wenn ich diese Abfrage ausführe, wird erneut die Fehlermeldung "Ungültiger Spaltenname" angezeigt, und wenn ich den alten Namen zurückschreibe, funktioniert sie ..... Hilf mir dabei ...... !!!!
Bonny
1
Wenn es so aussieht, als würde es nicht funktionieren, zählen Sie bis zehn. Das Aktualisieren dauert eine Weile und es gibt keine Anzeichen dafür, ob es funktioniert oder abgeschlossen ist.
Billpg
1
Wenn es auch nach der Antwort von @ David nicht funktioniert, schließen Sie SSMS und öffnen Sie es erneut. Das hat bei mir funktioniert.
Deepak