SQL Drop or Add Column With If Not Exists Check
Quando si definisce uno script SQL per aggiungere (ADD) o eliminare (DROP) una colonna da una tabella è bene inserire sempre un controllo che verifichi che la colonna che stiamo inserendo/eliminando esiste o meno.
Lo snippet verifica l’esistenza di una colonna in una tabella SQL Server 2005, prima di crearla, altrimenti darebbe il seguente errore: Column names in each table must be unique.
USE [Northwind] GO IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Categories' AND COLUMN_NAME = 'Note') BEGIN ALTER TABLE Categories ADD Note NVARCHAR(800) NULL END GO
E’ possibile personalizzare lo script eseguendo una drop per evitare l’errore duale: ALTER TABLE DROP COLUMN failed because column ‘Note’ does not exist in table ‘Categories’.
Ecco lo snippet di DROP COLUMN:
USE [Northwind] GO IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Categories' AND COLUMN_NAME = 'Note') BEGIN ALTER TABLE Categories DROP COLUMN Note END GO
Lascia un commento