Upuść domyślne ograniczenie na kolumnę w TSQL
Mam tabelę z taką kolumną, która jest aktualnie dostępna:
name NVARCHAR(128) NOT NULL DEFAULT ''
Zmieniam tę kolumnę w taki sposób, aby była dopuszczalna:
ALTER TABLE mytable ALTER COLUMN name NVARCHAR(128) NULL
Jednak domyślne ograniczenie o nazwie „DF__mytable__datab__7DE4B36” w jednym wystąpieniu tabeli nadal pozostaje. Wiem, że można by tego uniknąć, gdyby pierwotny autor nazwał ograniczenie. Mam kilka wystąpień tych tabel, ale nie chcę ręcznie usuwać każdego ograniczenia w każdej tabeli, którą mam. Jaki jest najłatwiejszy i najbardziej elegancki sposób upuszczenia tego domyślnego ograniczenia na kolumnę w serwerze Sql, którą mogę jednolicie zastosować do każdego wystąpienia tej tabeli?
EDYTOWAĆTo jest skrypt, z którego korzystałem:
DECLARE @table_id AS INT
DECLARE @name_column_id AS INT
DECLARE @sql nvarchar(255)
-- Find table id
SET @table_id = OBJECT_ID('mytable')
-- Find name column id
SELECT @name_column_id = column_id
FROM sys.columns
WHERE object_id = @table_id
AND name = 'name'
-- Remove default constraint from name column
SELECT @sql = 'ALTER TABLE mytable DROP CONSTRAINT ' + D.name
FROM sys.default_constraints AS D
WHERE D.parent_object_id = @table_id
AND D.parent_column_id = @name_column_id
EXECUTE sp_executesql @sql
Inny skrypt, którego można użyć do osiągnięcia tego celu, można znaleźć tutaj:Jak usunąć domyślne ograniczenie SQL bez znajomości jego nazwy?
Dzięki!