Dans Microsoft SQL Server, je connais la requête pour vérifier si une contrainte par défaut existe pour une colonne et supprimer une contrainte par défaut est:
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
Mais en raison de la faute de frappe dans les versions précédentes de la base de données, le nom de la contrainte pourrait être DF_SomeTable_ColName
ou DF_SmoeTable_ColName
.
Comment puis-je supprimer la contrainte par défaut sans aucune erreur SQL? Les noms de contraintes par défaut n'apparaissent pas dans la table INFORMATION_SCHEMA, ce qui rend les choses un peu plus compliquées.
Donc, quelque chose comme «supprimer la contrainte par défaut dans cette table / colonne» ou «supprimer DF_SmoeTable_ColName
», mais ne donnez aucune erreur s'il ne la trouve pas.