Maison > base de données > tutoriel mysql > Comment supprimer une contrainte par défaut de SQL Server sans connaître son nom ?

Comment supprimer une contrainte par défaut de SQL Server sans connaître son nom ?

Barbara Streisand
Libérer: 2025-01-02 17:17:39
original
413 Les gens l'ont consulté

How to Drop a SQL Server Default Constraint Without Knowing Its Name?

Suppression des contraintes SQL par défaut sans connaître le nom

Dans SQL Server, les contraintes par défaut sont un moyen de spécifier une valeur qui sera automatiquement attribuée à une colonne si aucune autre valeur n’est fournie. Cependant, il peut y avoir des situations où le nom de la contrainte par défaut est inconnu ou a été mal saisi.

Le défi

Pour supprimer une contrainte par défaut, la syntaxe ALTER TABLE DROP CONSTRAINT nécessite de spécifier le nom de la contrainte. Malheureusement, les informations sur les contraintes par défaut ne sont pas facilement disponibles via la table INFORMATION_SCHEMA.

La solution

Une approche pour surmonter ce défi consiste à utiliser du SQL dynamique pour générer la commande pour supprimer la contrainte en fonction des noms de schéma, de table et de colonne. Voici un exemple :

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

execute (@Command)
Copier après la connexion

Ce script génère dynamiquement la commande ALTER TABLE DROP CONSTRAINT nécessaire en fonction des informations fournies et l'exécute, supprimant la contrainte par défaut sans exiger son nom exact.

Par utilisant du SQL dynamique, cette méthode permet de supprimer les contraintes par défaut sans avoir besoin de connaissances préalables ni d'erreurs potentielles dues à des noms de contraintes incorrects.

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