Sto lavorando alla modifica della stored procedure SQL Server esistente. Ho aggiunto due nuove colonne alla tabella e ho modificato anche la procedura memorizzata per selezionare anche queste due colonne. Sebbene le colonne siano disponibili nella tabella, SQL Server mantiene questo errore:
Nome colonna non valido "INCL_GSTAMOUNT"
Qualcuno può dirmi cosa c'è che non va qui?
Ogni volta che succede a me, premo Ctrl+Shift+R che aggiorna intellisense
, chiude la finestra di query (salva se necessario), quindi avvia una nuova sessione che di solito funziona abbastanza bene.
Potrebbe anche accadere se si mette una stringa tra virgolette anziché singole.
Questo errore può anche verificarsi in istruzioni SQL incapsulate, ad es.
DECLARE @tableName nvarchar (20) SET @tableName = 'GROC'
DECLARE @updtStmt nvarchar (4000)
SET @updtStmt = 'Aggiorna tbProductMaster_' + @ tableName + 'SET department_str = '+ @tableName exec sp_executesql @updtStmt
Solo per scoprire che ci sono citazioni mancanti per incapsulare il parametro "@tableName" ulteriormente come segue:
SET @updtStmt = 'Aggiorna tbProductMaster_' + @ tableName + 'SET department_str = '' '+ @tableName +' '' '
Grazie
Intellisense non viene aggiornato automaticamente e non è necessario affidarsi completamente a questo
Stavo ottenendo lo stesso errore durante la creazione di una vista.
Immagina una query di selezione che viene eseguita senza problemi:
select id
from products
Il tentativo di creare una vista dalla stessa query produrrebbe un errore:
create view app.foobar as
select id
from products
Msg 207, livello 16, stato 1, procedura foobar, linea 2
Nome della colonna non valido 'id'.
Per me è risultato essere un problema di scoping; nota che la vista viene creata in uno schema diverso. La specifica dello schema della tabella products
ha risolto il problema. Cioè usando dbo.products
invece di solo products
.
Ho avuto un problema simile.
Problema: c'era un trigger sulla tabella che scriveva le modifiche a una tabella di log di controllo. Le colonne mancavano nella tabella del registro di controllo.
La seguente procedura mi ha aiutato a risolvere questo problema ma non so perché.
Anche se sembra essere la stessa query, l'esecuzione non ha generato questo errore
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
con la tabella di aggiornamento o il server SQL chiuso e aperto questo lavoro