Arrière-plan
SQL Server permet la création de contraintes par défaut sur les colonnes . Cependant, dans les premières versions, les fautes de frappe entraînaient souvent des noms de contraintes incohérents, tels que « DF_SomeTable_ColName » et « DF_SmoeTable_ColName ». Cela pose un défi lorsque l'on tente de supprimer une contrainte par défaut sans connaître son nom précis.
Solution
Pour supprimer efficacement une contrainte par défaut sans connaître son nom, l'approche suivante peut être utilisé :
Exemple de code
L'exemple de code suivant fournit une implémentation de l'approche décrite :
declare @schema_name nvarchar(256) declare @table_name nvarchar(256) declare @col_name nvarchar(256) declare @Command nvarchar(1000) set @schema_name = N'MySchema' set @table_name = N'Department' set @col_name = N'ModifiedDate' select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name from sys.tables t join sys.default_constraints d on d.parent_object_id = t.object_id join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id where t.name = @table_name and t.schema_id = schema_id(@schema_name) and c.name = @col_name --print @Command execute (@Command)
En utilisant cette technique, les contraintes par défaut peuvent être supprimées dynamiquement, quelles que soient les incohérences de nom induites par des fautes de frappe. Cette approche garantit que les contraintes sont supprimées avec succès sans rencontrer d'erreurs dues à des noms de contraintes inconnus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!