Servidor de SQL: nome da coluna inválido
estou a trabalhar na modificação do actual procedimento de armazenamento do servidor SQL. Eu adicionei duas novas colunas à tabela e modifiquei o procedimento armazenado também para selecionar estas duas colunas também. Embora as colunas estejam disponíveis na tabela SQL Server continua a dar este erro:
Alguém me pode dizer o que se passa aqui?o nome da coluna inválido 'INCL_ GSTAMOUNT'
9 answers
Sempre que isto me acontece, carrego Ctrl+Shift+R que actualiza intellisense
, fecha a janela da consulta (gravar se necessário) e inicia uma nova sessão que normalmente funciona bastante bem.
Também pode acontecer se colocar o texto entre aspas em vez de simples.
Este erro também pode ocorrer em declarações SQL encapsuladas, por exemplo
Declarar @tableName nvarchar (20) definir @tableName = 'GROC'
DECLARE @updtStmt nvarchar (4000)
SET @updtStmt = 'Update tbProductMaster_' +@tableName + ' SET department_ Str = ' + @tableName exec sp_ ExecuteSQL @updtStmt
Só para descobrir que faltam citações para encapsular o parâmetro "@tableName", como o seguinte:
Obrigado.Conjunto @updtStmt = 'Update tbProductMaster_' +@tableName + ' SET department_str = "'+ @tableName + "'
Estava a ter o mesmo erro ao criar uma vista.
Imagine uma consulta selecionada que executa sem problema:
select id
from products
Tentar criar uma vista da mesma consulta produziria um erro:
create view app.foobar as
select id
from products
Para mim, acabou por ser uma questão de escopo; note que a vista está sendo criada em um esquema diferente. A especificação do esquema da tabelaMsg 207, nível 16, estado 1, barra de procedimentos, Linha 2
O nome da coluna 'id'é inválido.
products
resolveu a problema. Ie.. usando dbo.products
em vez de apenas products
.
Com a tabela de actualização ou fechar e abrir o servidor sql este trabalho
A questão era que havia um gatilho na tabela que iria escrever alterações a uma tabela de registo de auditoria. Faltavam colunas na tabela de registos de auditoria.
- Corte o código em questão dado pelas linhas da mensagem
- Guarde a consulta (por exemplo, para Ficheiro)
- colar o código para onde estava antes
- volta a gravar a pesquisa
Mesmo que pareça ser a mesma consulta a executar, ele não lançou este erro