sql >> Databasteknik >  >> RDS >> Sqlserver

Hur släpper man kolumn med tvång?

Först bör du släppa den problematiska DEFAULT constraint , efter det kan du släppa kolumnen

alter table tbloffers drop constraint [ConstraintName]
go

alter table tbloffers drop column checkin

Men felet kan uppstå av andra orsaker - till exempel den användardefinierade funktionen eller vyn med SCHEMABINDING alternativ för dem.

UPD: Helt automatiserad borttagning av begränsningsskript:

DECLARE @sql NVARCHAR(MAX)
WHILE 1=1
BEGIN
    SELECT TOP 1 @sql = N'alter table tbloffers drop constraint ['+dc.NAME+N']'
    from sys.default_constraints dc
    JOIN sys.columns c
        ON c.default_object_id = dc.object_id
    WHERE 
        dc.parent_object_id = OBJECT_ID('tbloffers')
    AND c.name = N'checkin'
    IF @@ROWCOUNT = 0 BREAK
    EXEC (@sql)
END


  1. Få tillgång till webbtjänst från Oracles lagrade procedur

  2. Spolar enstaka markör

  3. Ny användare och LDAP-hantering i ClusterControl 1.8.2

  4. Välja rader ordnade efter någon kolumn och distinkta i en annan