web-dev-qa-db-de.com

SQL Server: Ungültiger Spaltenname

Ich arbeite an der Änderung der vorhandenen gespeicherten Prozedur von SQL Server. Ich habe der Tabelle zwei neue Spalten hinzugefügt und auch die gespeicherte Prozedur geändert, um auch diese beiden Spalten auszuwählen. Obwohl die Spalten in der Tabelle verfügbar sind, gibt SQL Server diesen Fehler weiter aus:

Ungültiger Spaltenname 'INCL_GSTAMOUNT'

enter image description here

Kann mir bitte jemand sagen, was hier los ist?

57
Kamran Ahmed

Immer wenn mir das passiert, drücke ich Ctrl+Shift+R Das aktualisiert intellisense, schließt das Abfragefenster (ggf. speichern) und startet dann eine neue Sitzung, die normalerweise recht gut funktioniert.

151
Ric

Kann auch vorkommen, wenn Zeichenfolge in Anführungszeichen statt in einfache Anführungszeichen gesetzt wird.

47
Harry

Dieser Fehler kann auch in gekapselten SQL-Anweisungen auftreten, z.

DECLARE @tableName nvarchar (20) SET @tableName = 'GROC'

DECLARE @updtStmt nvarchar (4000)

SET @updtStmt = 'Aktualisiere tbProductMaster_' + @ tableName + 'SET department_str = '+ @tableName exec sp_executesql @updtStmt

Nur um herauszufinden, dass es Anführungszeichen gibt, um den Parameter "@tableName" weiter einzukapseln, wie folgt:

SET @updtStmt = 'Aktualisiere tbProductMaster_' + @ tableName + 'SET department_str = '' '+ @tableName +' '' '

Vielen Dank

3
Chagbert

Intellisense wird nicht automatisch aktualisiert. Darauf sollten Sie sich nicht vollständig verlassen

2
Madhivanan

Beim Erstellen einer Ansicht wurde der gleiche Fehler angezeigt.

Stellen Sie sich eine Auswahlabfrage vor, die ohne Problem ausgeführt wird:

select id
from products

Der Versuch, eine Ansicht aus derselben Abfrage zu erstellen, würde zu einem Fehler führen:

create view app.foobar as
select id
from products

Meldung 207, Ebene 16, Status 1, Verfahren foobar, Zeile 2
Ungültiger Spaltenname 'id'.

Für mich stellte sich heraus, dass es sich hierbei um ein Problem handelt. Beachten Sie, dass die Ansicht in einem anderen Schema erstellt wird. Durch die Angabe des Schemas der Tabelle products wurde das Problem behoben. Dh .. mit dbo.products anstelle von products.

1
Molomby
  • Aktualisieren Sie Ihre Tabellen.
  • Starten Sie den SQL Server neu.
  • Achten Sie auf die Rechtschreibfehler in Query.
0
Khizer Amin

Ich hatte ein ähnliches Problem. 

Es gab einen Auslöser in der Tabelle, durch den Änderungen in eine Prüfprotokolltabelle geschrieben wurden. In der Prüfprotokolltabelle fehlten Spalten. 

0
William Monahan

Das folgende Verfahren hat mir geholfen, dieses Problem zu lösen, aber ich weiß nicht warum.

  1. Schneiden Sie den betreffenden Code aus den Zeilen in der Nachricht aus
  2. Speichern Sie die Abfrage (z. B. in eine Datei).
  3. Fügen Sie den Code dort ein, wo er zuvor war
  4. Speichern Sie die Abfrage erneut

Auch wenn es scheint, dass dieselbe Abfrage ausgeführt wird, hat sie diesen Fehler nicht ausgelöst

0
Dreanaught

Ich habe es versucht. Wenn Sie die Anweisung zum Generieren Ihrer lokalen Tabelle ausführen, akzeptiert das Tool, dass dieser Spaltenname vorhanden ist. Markieren Sie einfach die Tabellengenerierungsanweisung in Ihrem Editorfenster und klicken Sie auf Ausführen.

0
Anderas
There can be many things:
First attempt, make a select of this field in its source table;
Check the instance of the sql script window, you may be in a different instance;
Check if your join is correct;
Verify query ambiguity, maybe you are making a wrong table reference
Of these checks, run the T-sql script again

[Image of the script SQL][1]
  [1]: https://i.stack.imgur.com/r59ZY.png`enter code here
0
Junior Placido

mit refresh table oder close und open sql server funktioniert dies 

0
behzad