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'
Kann mir bitte jemand sagen, was hier los ist?
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.
Kann auch vorkommen, wenn Zeichenfolge in Anführungszeichen statt in einfache Anführungszeichen gesetzt wird.
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
Intellisense wird nicht automatisch aktualisiert. Darauf sollten Sie sich nicht vollständig verlassen
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
.
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.
Das folgende Verfahren hat mir geholfen, dieses Problem zu lösen, aber ich weiß nicht warum.
Auch wenn es scheint, dass dieselbe Abfrage ausgeführt wird, hat sie diesen Fehler nicht ausgelöst
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.
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
mit refresh table oder close und open sql server funktioniert dies