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

Menjatuhkan batasan tanpa nama

Untuk menjatuhkan batasan default yang tidak disebutkan namanya pada kolom, gunakan kode berikut:

DECLARE @ConstraintName VARCHAR(256)
SET @ConstraintName = (
     SELECT             obj.name
     FROM               sys.columns col 

     LEFT OUTER JOIN    sys.objects obj 
     ON                 obj.object_id = col.default_object_id 
     AND                obj.type = 'F' 

     WHERE              col.object_id = OBJECT_ID('TableName') 
     AND                obj.name IS NOT NULL
     AND                col.name = 'ColunmName'
)   

IF(@ConstraintName IS NOT NULL)
BEGIN
    EXEC ('ALTER TABLE [TableName] DROP CONSTRAINT ['[email protected]+']')
END

Jika Anda ingin melakukan ini untuk kolom default, yang mungkin lebih umum daripada pertanyaan awal dan saya yakin banyak orang akan menemukan ini dari penelusuran Google, maka ubah saja barisnya:

obj.type = 'F'

untuk

obj.type = 'D'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Arsitektur SQL Server AlwaysOn (Availability Group) dan Instalasi Langkah demi Langkah -1

  2. SQL Server:Klausa di mana dinamis

  3. Tanda kurung kurawal di T-SQL

  4. Apakah mungkin menjalankan beberapa pernyataan DDL di dalam transaksi (dalam SQL Server)?

  5. Solusi Untuk Cara Membaca File Log Transaksi SQL Server Tanpa Gagal