在Microsoft SQL Server中,我知道判断列是否存在默认约束并删除默认约束的查询是:
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
但由于之前版本的数据库中存在打字错误,约束的名称可能是DF_SomeTable_ColName
或DF_SmoeTable_ColName
.
如何在没有任何SQL错误的情况下删除默认约束?默认的约束名称不会出现在INFORMATION_SCHEMA表中,这让事情变得有点棘手.
因此,类似"删除此表/列中的默认约束"或"删除DF_SmoeTable_ColName
"之类的内容,但如果找不到,请不要给出任何错误.