2009-07-07 8 views

Répondre

1

pour construire sur le code de Richard:

SELECT 
'ALTER TABLE ' + object_name(parent_obj) + ' DROP CONSTRAINT ' + object_name(id),* FROM sysobjects WHERE xtype IN ('F', 'PK') 

Vous pouvez exécuter la sortie en QA & regarder votre taux de désabonnement db car il transforme vos tables en tas

+0

comme nous pouvons le faire, j'ai une autre option trop - sélectionnez 'Alter table' + Table_Name + 'drop constraint' + CONSTRAINT_NAME - de information_schema.TABLE_CONSTRAINTS où CONSTRAINT_TYPE comme 'F%' - union - sélectionnez 'Alter table' + Table_Name + 'drop constraint' + cONSTRAINT_NAME - de information_schema.TABLE_CONSTRAINTS où CONSTRAINT_TYPE comme 'P%' parce que je dois enlever la première forgeinkey et après – KuldipMCA

+0

clé primaire Terminé ci-dessous est la requête sélectionner « Alter Tableau '+ Table_Name +' Constraint Drop '+ Constraint_Name à partir de information_schema.TABLE_CONSTRAINTS order by Constraint_type – KuldipMCA

0

Vous pouvez sélectionner des lignes du tableau dbo.sysobjects avec xtype in ('F', 'PK') et, pour chaque ligne, générer l'instruction alter table appropriée. Cependant, je voudrais d'abord demander, pourquoi voulez-vous faire cela? Les contraintes sont très importantes pour un certain nombre de raisons différentes.

+0

je veux supprimer tous les contstraints et créer toutes les nouvelles contraintes quand jamais je vais retirer pk alors il me donnera erreur qui supprime premier fk qui est problème principal – KuldipMCA

+0

Que diriez-vous juste de laisser tomber tous les FK puis les re-créer? Merci –

0

Vous pouvez trouver des contraintes énumérées dans le tableau sysobjects:

SELECT * FROM sysobjects WHERE xtype IN ('F', 'PK') 

Utilisez un curseur en boucle à travers les documents pertinents, construire une instruction SQL dans une chaîne qui supprimera chaque contrainte et exec() la déclaration .

Questions connexes