Maison > base de données > tutoriel mysql > Comment supprimer les contraintes SQL par défaut sans connaître leurs noms ?

Comment supprimer les contraintes SQL par défaut sans connaître leurs noms ?

Patricia Arquette
Libérer: 2024-12-30 18:18:13
original
374 Les gens l'ont consulté

How to Drop SQL Default Constraints Without Knowing Their Names?

Supprimer les contraintes par défaut SQL sans connaître leurs noms

Dans SQL Server, identifier et supprimer les contraintes par défaut peut être difficile, en particulier lorsque leurs noms sont inconnu ou incohérent. Pour résoudre ce problème, la génération de requêtes dynamiques peut être utilisée pour identifier et supprimer efficacement les contraintes par défaut.

Réponse étendue :

Développant le script partagé par Mitch Wheat, un plus Une approche globale implique la génération et l’exécution dynamiques de la commande DROP CONSTRAINT. Voici comment cela fonctionne :

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)
Copier après la connexion

Explication :

  • Ce script construit dynamiquement la commande DROP CONSTRAINT en interrogeant les tables de métadonnées (sys.tables, sys .default_constraints et sys.columns).
  • Il précise le schéma nom, nom de la table et nom de la colonne pour identifier la contrainte cible par défaut.
  • La commande générée est ensuite imprimée et exécutée dynamiquement, vous permettant de supprimer la contrainte par défaut sans connaître son nom exact.

Avantages :

  • Gère les contraintes nommées de manière incohérente, telles que "DF_SomeTable_ColName" ou "DF_SmoeTable_ColName."
  • Identifie et supprime dynamiquement les contraintes par défaut en fonction des informations de table et de colonne spécifiées.
  • Évite les erreurs SQL en générant dynamiquement la commande correcte.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal