Maison > base de données > tutoriel mysql > Comment désactiver et réactiver temporairement les contraintes de base de données dans MS SQL ?

Comment désactiver et réactiver temporairement les contraintes de base de données dans MS SQL ?

Mary-Kate Olsen
Libérer: 2025-01-10 10:25:42
original
470 Les gens l'ont consulté

How to Temporarily Disable and Re-enable Database Constraints in MS SQL?

Gestion temporaire des contraintes de base de données dans MS SQL Server

La désactivation temporaire des contraintes dans Microsoft SQL Server peut rationaliser les opérations de base de données, en particulier lors du transfert de données. Ce guide détaille les méthodes pour désactiver et réactiver temporairement les contraintes.

Désactivation des contraintes

Désactivation des contraintes de table individuelles (ALTER TABLE) :

Utilisez cette commande pour désactiver les contraintes sur une seule table :

<code class="language-sql">ALTER TABLE tableName NOCHECK CONSTRAINT ALL;</code>
Copier après la connexion

Désactivation des contraintes à l'échelle de la base de données (sp_msforeachtable) :

Cette procédure stockée désactive les contraintes sur toutes les tables de la base de données :

<code class="language-sql">EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL';</code>
Copier après la connexion

Réactivation des contraintes

Réactivation des contraintes de table individuelles (ALTER TABLE) :

Réactivez les contraintes sur une table spécifique avec cette commande :

<code class="language-sql">ALTER TABLE tableName WITH CHECK CHECK CONSTRAINT ALL;</code>
Copier après la connexion

Réactivation des contraintes à l'échelle de la base de données (sp_msforeachtable) :

Réactivez les contraintes pour toutes les tables de la base de données à l'aide de cette procédure stockée :

<code class="language-sql">EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL';</code>
Copier après la connexion

Application pratique

L'exemple suivant présente le processus de désactivation et de réactivation temporaires des contraintes lors d'une opération de copie de données :

<code class="language-sql">-- Disable constraints on TableA and TableB
ALTER TABLE TableA NOCHECK CONSTRAINT ALL;
ALTER TABLE TableB NOCHECK CONSTRAINT ALL;

-- Copy data from TableA to TableB
INSERT INTO TableB SELECT * FROM TableA;

-- Re-enable constraints on TableA and TableB
ALTER TABLE TableA WITH CHECK CHECK CONSTRAINT ALL;
ALTER TABLE TableB WITH CHECK CHECK CONSTRAINT ALL;</code>
Copier après la connexion

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