Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak upuścić kolumnę z ograniczeniem?

Najpierw powinieneś usunąć problematyczne DEFAULT constraint , po czym możesz upuścić kolumnę

alter table tbloffers drop constraint [ConstraintName]
go

alter table tbloffers drop column checkin

Ale błąd może pojawić się z innych powodów - na przykład funkcji zdefiniowanej przez użytkownika lub widoku z SCHEMABINDING opcja dla nich ustawiona.

UPD: Całkowicie zautomatyzowane usuwanie skryptu ograniczeń:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybór procesora dla SQL Server 2014 – część 2

  2. Dowiedz się, do której partycji dana wartość zostanie zmapowana w SQL Server (T-SQL)

  3. Konwertuj „czas” na „smalldatetime” w SQL Server (przykłady T-SQL)

  4. Jak tworzyć widoki zmaterializowane w SQL Server?

  5. SQL — różnica między COALESCE i ISNULL?