venerdì 22 febbraio 2013

Eliminazione valore di Default di una colonna

Assegnare via script T-SQL un valore di default ad una colonna è molto semplice. La sua rimozione, al contrario, non è semplicissima in quanto il nome della constraint che viene creata varia da server a server (quindi in un ambiente multi server oppure su ambienti diversi non avrà mai lo stesso nome).

Questo script recupera il nome del vincolo e lo elimina.


DECLARE @name nvarchar(100)

SELECT @name =  name FROM sys.objects WHERE type = 'D' AND object_id IN
(
SELECT default_object_id
FROM [sys].[all_columns]
WHERE name = 'column_name'
AND object_id =
(
SELECT  object_id FROM sys.objects WHERE type = 'U' AND name = 'table_name'
)
)

EXEC ('ALTER TABLE table_name DROP CONSTRAINT ' + @name)