Comment vérifier si il existe une colonne dans une table SQL Server?

J'ai besoin d'ajouter une colonne spécifique si elle n'existe pas. J'ai quelque chose comme ce qui suit, mais il renvoie toujours false:

IF EXISTS(SELECT *
          FROM   INFORMATION_SCHEMA.COLUMNS
          WHERE  TABLE_NAME = 'myTableName'
                 AND COLUMN_NAME = 'myColumnName') 

Comment puis-je vérifier si il existe une colonne dans une table de la base de données SQL Server?

Je ne pense pas qu'il ya quelque chose de mal avec le code dans la question: Œuvres finement pour moi en 2008 R2. (Peut-être que vous lanciez dans la mauvaise base de données? Peut-être que votre base de données a été sensible à la casse et vous n'avez pas le cas dans votre myTableName / myColumnName cordes? Ce type de requête semble plus souple que le COL_LENGTH solution: je suis capable de l'exécuter à l'encontre d'une autre base de données et même au-dessus un lien de base de données par du personnel dûment ajoutant le préfixe "INFORMATION_SCHEMA". Ne pouvais pas voir comment le faire avec le COL_LENGTH les métadonnées de la fonction.
COL_LENGTH('AdventureWorks2012.HumanResources.Department ','ModifiedDate') fonctionne très bien.
Peu liées astuce: si vous voulez mettre à jour une colonne à droite après la colonne plus(je crois que de nombreux utilisateurs ont été à la recherche de cet article), vous pouvez utiliser EXEC sp_executesql formé UPDATE déclaration.
La vraie réponse est que vous devez l'ajouter à la base de données que vous vérifiez contre il est donc FROM [YourDatabase].INFORMATION_SCHEMA.COLUMNS

OriginalL'auteur Maciej | 2008-09-25