Dans Microsoft SQL Server, je sais la requête pour vérifier si une contrainte par défaut existe pour une colonne et supprimer une contrainte par défaut est:Comment faire pour supprimer la contrainte SQL par défaut sans connaître son nom?
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 fautes de frappe dans les versions précédentes de la base de données, le nom du la contrainte peut être DF_SomeTable_ColName
ou DF_SmoeTable_ColName
. Comment puis-je supprimer la contrainte par défaut sans erreurs SQL? Les noms de contrainte 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 donne pas d'erreurs s'il ne peut pas le trouver.
Je ne suis pas compétent avec SQL Server, vous pouvez renommer une contrainte après avoir trouvé son prénom? "Modifier la table peut parfois renommer la contrainte xxx en yyy" dans Oracle. –