Microsoft SQL Server'da, bir sütun için varsayılan bir kısıtlama olup olmadığını kontrol etmek ve varsayılan bir kısıtlama bırakmak sorguyu biliyorum:
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
Ancak veritabanının önceki sürümlerindeki yazım hatası nedeniyle, kısıtlamanın adı DF_SomeTable_ColName
veya olabilir DF_SmoeTable_ColName
.
Herhangi bir SQL hatası olmadan varsayılan kısıtlamayı nasıl silebilirim? Varsayılan kısıtlama adları BİLGİCHEMA tablosunda görünmez, bu da işleri biraz daha karmaşık hale getirir.
Bu nedenle, 'bu tablodaki / sütundaki varsayılan kısıtlamayı sil DF_SmoeTable_ColName
' veya 'sil ' gibi bir şey, ancak bulamazsa hata vermeyin.