post icon

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
5 marzo 2009 @ 15:31

No comments yet.

Leave a comment

Leave a Reply

Are you human? Time limit is exhausted. Please reload CAPTCHA.