120 votes

SQL Server : Nom de colonne non valide

Je travaille sur la modification de la procédure stockée SQL Server existante. J'ai ajouté deux nouvelles colonnes à la table et modifié la procédure stockée pour sélectionner également ces deux colonnes. Bien que les colonnes soient disponibles dans la table, je reçois toujours cette erreur :

Nom de colonne non valide 'INCL_GSTAMOUNT'

entrer une description de l'image ici

Est-ce que quelqu'un peut me dire ce qui ne va pas ici ?

317voto

Ric Points 9310

Chaque fois que cela m'arrive, j'appuie sur Ctrl+Shift+R pour rafraîchir intellisense, ferme la fenêtre de requête (enregistre si nécessaire), puis démarre une nouvelle session qui fonctionne généralement assez bien.

133voto

Harry Points 82

Cela pourrait également se produire en mettant la chaîne entre guillemets doubles au lieu de simples.

8voto

dush88c Points 588

Si vous allez MODIFIER la colonne de la table et METTRE À JOUR immédiatement la table incluant la nouvelle colonne dans le même script. Assurez-vous d'utiliser la commande GO après la ligne de code d'altération de table comme ci-dessous.

ALTER TABLE Location 
ADD TransitionType SMALLINT NULL
GO   

UPDATE Location SET TransitionType =  4

ALTER TABLE Location 
    ALTER COLUMN TransitionType SMALLINT NOT NULL

7voto

gthuo Points 700

Je suis venu ici parce que je recevais cette erreur. Et la raison était que j'utilisais des guillemets doubles (") au lieu de guillemets simples (') lors de l'attribution de valeurs pour les conditions WHERE. J'écris ceci pour mon futur moi.

5voto

Chagbert Points 46

Cette erreur peut également se produire dans des instructions SQL encapsulées, par exemple :

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

DECLARE @updtStmt nvarchar(4000)

SET @updtStmt = 'Mettre à jour tbProductMaster_' +@tableName +' Définir department_str = ' + @tableName exec sp_executesql @updtStmt

Seulement pour découvrir qu'il manque des guillemets pour encapsuler le paramètre "@tableName" plus loin comme suit :

SET @updtStmt = 'Mettre à jour tbProductMaster_' +@tableName +' Définir department_str = ''' + @tableName + ''' '

Merci

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X