Here is a useful stored procedure for deleting default contraint of some table column withou knowing its name (code is valid for MS SQL):
CREATE PROCEDURE p_DropDefaultContratintForColumn ( @TableName nvarchar(255), @ColumnName nvarchar(255) ) AS DECLARE @sql nvarchar(255) IF EXISTS( SELECT d.name FROM sys.all_columns c JOIN sys.tables t ON t.object_id = c.object_id JOIN sys.schemas s ON s.schema_id = t.schema_id JOIN sys.default_constraints d ON c.default_object_id = d.object_id WHERE t.name = @TableName AND c.name = @ColumnName AND s.name = SCHEMA_NAME()) BEGIN select @sql = 'ALTER TABLE ' + @TableName + ' DROP CONSTRAINT ' + d.name FROM sys.all_columns c JOIN sys.tables t ON t.object_id = c.object_id JOIN sys.schemas s ON s.schema_id = t.schema_id JOIN sys.default_constraints d ON c.default_object_id = d.object_id WHERE t.name = @TableName AND c.name = @ColumnName AND s.name = SCHEMA_NAME() exec sp_executesql @sql END
Комментариев нет:
Отправить комментарий