In Microsoft SQL Server, conosco la query per verificare se esiste un vincolo predefinito per una colonna e rilasciare un vincolo predefinito è:
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
Ma a causa dell'errore di battitura nelle versioni precedenti del database, il nome del vincolo potrebbe essere DF_SomeTable_ColName
oDF_SmoeTable_ColName
.
Come posso eliminare il vincolo predefinito senza errori SQL? I nomi dei vincoli predefiniti non vengono visualizzati nella tabella INFORMATION_SCHEMA, il che rende le cose un po 'più complicate.
Quindi, qualcosa come "elimina il vincolo predefinito in questa tabella / colonna" o "elimina DF_SmoeTable_ColName
", ma non dare alcun errore se non riesce a trovarlo.