Drop default constraint on a column in TSQL

前端 未结 3 629
没有蜡笔的小新
没有蜡笔的小新 2020-12-28 12:01

I have a table with a column like this that is currently live:

name NVARCHAR(128) NOT NULL DEFAULT \'\'
3条回答
  •  悲哀的现实
    2020-12-28 12:54

    I would suggest:

    DECLARE @sqlStatement nvarchar(MAX),
            @tableName nvarchar(50) = 'TripEvent',
            @columnName nvarchar(50) = 'CreatedDate';
    
    SELECT                  @sqlStatement = 'ALTER TABLE ' + @tableName + ' DROP CONSTRAINT ' + dc.name + ';'
            FROM            sys.default_constraints AS dc
                LEFT JOIN   sys.columns AS sc
                    ON      (dc.parent_column_id = sc.column_id)
            WHERE           dc.parent_object_id = OBJECT_ID(@tableName)
            AND         type_desc = 'DEFAULT_CONSTRAINT'
            AND         sc.name = @columnName
    PRINT'   ['+@tableName+']:'+@@SERVERNAME+'.'+DB_NAME()+'@'+CONVERT(VarChar, GETDATE(), 127)+';  '+@sqlStatement;
    IF(LEN(@sqlStatement)>0)EXEC sp_executesql @sqlStatement
    

提交回复
热议问题