risposta-alla-domanda-sullo-sviluppo-web-bd.com

SQL Server: nome colonna non valido

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"

enter image description here

Qualcuno può dirmi cosa c'è che non va qui?

57
Kamran Ahmed

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.

151
Ric

Potrebbe anche accadere se si mette una stringa tra virgolette anziché singole.

47
Harry

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

3
Chagbert

Intellisense non viene aggiornato automaticamente e non è necessario affidarsi completamente a questo

2
Madhivanan

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.

1
Molomby

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. 

0
William Monahan

La seguente procedura mi ha aiutato a risolvere questo problema ma non so perché.

  1. Taglia il codice in questione dato dalle righe nel messaggio
  2. Salva la query (ad esempio nel file)
  3. Incolla il codice dove era prima
  4. Ancora una volta salva la query

Anche se sembra essere la stessa query, l'esecuzione non ha generato questo errore

0
Dreanaught
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

con la tabella di aggiornamento o il server SQL chiuso e aperto questo lavoro 

0
behzad