Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara menjatuhkan kolom dengan kendala?

Pertama, Anda harus menghapus DEFAULT constraint yang bermasalah , setelah itu kamu bisa drop kolomnya

alter table tbloffers drop constraint [ConstraintName]
go

alter table tbloffers drop column checkin

Tetapi kesalahan mungkin muncul karena alasan lain - misalnya fungsi atau tampilan yang ditentukan pengguna dengan SCHEMABINDING pilihan yang ditetapkan untuk mereka.

UPD: Penghapusan skrip batasan yang sepenuhnya otomatis:

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. Bagaimana Mengidentifikasi duplikasi kunci utama dari kode kesalahan SQL Server 2008?

  2. Bagaimana cara membuat daftar contoh SQL Server yang tersedia menggunakan SMO di C #?

  3. Hasilkan kumpulan tanggal penambahan di TSQL

  4. Gunakan SCOPE_IDENTITY() untuk Mengembalikan Nilai Identitas yang Disisipkan Terakhir dalam Lingkup yang Sama (SQL Server)

  5. Apa itu @@SERVICENAME di SQL Server?