J'ai une requête pour ajouter une colonne si elle n'existe pas. Cela fonctionne la première fois, mais si je le lance à nouveau, il échoue, en disant que la colonne existe?!?Si une colonne existe problème de requête - SQL Server
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TABLE_NAME' AND COLUMN_NAME = 'COLUMN_NAME')
BEGIN
ALTER TABLE TABLE_NAME ADD COLUMN nchar(3) NULL;
END
Et lorsque je lance la requête contre INFORMATION_SCHEMA.COLUMNS, il ne renvoie rien.
J'ai aussi essayé le
IF NOT EXISTS (SELECT * FROM SYS.COLUMNS WHERE NAME = N'COLUMN_NAME' AND OBJECT_ID = OBJECT_ID(N'TABLE_NAME'))
version, qui présente le même comportement (cela fonctionne une fois, et échoue sur la deuxième manche).
À quel moment les tables sys sont-elles mises à jour, et quel est le moyen infaillible de tester si une colonne existe?
Merci, Sam
dupliquer: http://stackoverflow.com/questions/133031/how-to-check-if-column-exists-in-sql-server-table –