Di Microsoft SQL Server, saya tahu permintaan untuk memeriksa apakah ada kendala default untuk kolom dan drop kendala standar adalah:
IF EXISTS(SELECT * FROM sysconstraints
WHERE id=OBJECT_ID('SomeTable')
AND COL_NAME(id,colid)='ColName'
AND OBJECTPROPERTY(constid, 'IsDefaultCnst')=1)
ALTER TABLE SomeTable DROP CONSTRAINT DF_SomeTable_ColName
Tetapi karena kesalahan ketik pada versi sebelumnya dari database, nama batasannya bisa DF_SomeTable_ColName
atau DF_SmoeTable_ColName
.
Bagaimana saya bisa menghapus batasan default tanpa kesalahan SQL? Nama batasan default tidak muncul di tabel INFORMATION_SCHEMA, yang membuat segalanya sedikit lebih rumit.
Jadi, sesuatu seperti 'hapus batasan default di tabel / kolom ini', atau 'hapus DF_SmoeTable_ColName
', tetapi jangan memberikan kesalahan jika tidak dapat menemukannya.