J'essaie d'écrire un script de mise à jour de la base de données du serveur SQL. Je veux tester l'existence d'une colonne dans une table, puis si elle n'existe pas ajouter la colonne avec une valeur par défaut, et enfin mettre à jour cette colonne en fonction de la valeur actuelle d'une colonne différente dans la même table. Je veux que ce script soit exécutable plusieurs fois, la première fois en mettant à jour la table et lors des exécutions suivantes, le script doit être ignoré. Mon script ressemble actuellement à ce qui suit :
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PurchaseOrder' AND COLUMN_NAME = 'IsDownloadable')
BEGIN
ALTER TABLE [dbo].[PurchaseOrder] ADD [IsDownloadable] bit NOT NULL DEFAULT 0
UPDATE [dbo].[PurchaseOrder] SET [IsDownloadable] = 1 WHERE [Ref] IS NOT NULL
END
Le serveur SQL renvoie l'erreur "Invalid column name 'IsDownloadable'", c'est-à-dire que je dois valider la DDL avant de pouvoir mettre à jour la colonne. J'ai essayé plusieurs permutations mais je n'arrive à rien rapidement.