Supprimez toutes les tables, procédures stockées, des déclencheurs, des contraintes et de toutes les dépendances dans une instruction sql
Est-il de toute façon de nettoyer une base de données dans SQl Server 2005, par la suppression de toutes les tables et la suppression des procédures stockées, des déclencheurs, des contraintes et de toutes les dépendances dans une instruction SQL?
RAISON DE LA DEMANDE:
Je veux avoir une DB script pour nettoyer une base de données existante qui n'est pas en cours d'utilisation, plutôt que d'en créer de nouveaux, en particulier lorsque vous devez en faire la demande à votre DB admin et d'attendre un moment pour le faire!
- SQL server ne fournit pas de requête pour supprimer toutes les procédure stockées,vues et déclenche donc, si nous avons besoin de supprimer en une seule fois nous avons besoin de créer un Curseur veuillez vérifier les étapes suivantes dans l'URL donnée ci-dessous. freshcodehub.com/Article/36/...
Vous devez vous connecter pour publier un commentaire.
ce script nettoie tous les points de vue, SPS, les fonctions de PKs, FKs et des tables.
Cannot DROP FUNCTION 'fun_foo' because it is being referenced by object 'table_bar'.
Je suis en utilisant ce script par Adam Anderson, mis à jour pour supporter des objets dans d'autres schémas que dbo.
Source: Adam Anderson post de blog
La meilleure chose à faire c'est "Générer des scripts pour Déposer"
Sélectionnez Base de données -> Clic Droit -> Tâches -> Générer des Scripts - ouvrira assistant pour générer des scripts
après la sélection d'objets dans un ensemble de Scripts option, cliquez sur Avancé Bouton
Il comprend les objets dépendants par défaut.(et drop constraint au premier abord)
Exécuter le script
De cette façon, nous pouvons personnaliser notre script.
À abandonner toutes les tables:
Ce sera, bien sûr, baisse de toutes les contraintes, les déclencheurs etc., tout, mais les procédures stockées.
Pour les procédures stockées, je crains que vous aurez besoin d'une autre procédure stockée stockées dans
master
.stored procedures
etc.Je le ferais en deux états:
BAISSE de la BASE de données ???
et puis
CRÉER une BASE de données ???
J'ai essayé quelques script ici, mais ils n'ont pas de travail pour moi, j'ai mes tables dans des schémas. J'ai donc monté le suivant. Notez que ce script prend une liste de schémas, et descend ensuite dans la séquence. Vous devez vous assurer que vous avez un ordonnancement complet dans vos schémas. S'il y a des dépendances circulaires, il échouera.
Sauvegarder complètement vide de la base de données. Au lieu de déposer tous les objets, il suffit de restaurer la sauvegarde.
C'est ce que j'ai essayé:
Ce que jamais la sortie, il permet d'imprimer, il suffit de copier tous les et collez-le dans nouvelle requête et cliquez sur exécuter.
Cela permettra de supprimer toutes les tables.
J'ai accidentellement couru un db script d'initialisation à l'encontre de ma base de données master ce soir. De toute façon, j'ai vite couru dans ce fil. J'ai utilisé l': exec sp_MSforeachtable 'DROP TABLE ?" réponse, mais il a dû exécuter plusieurs fois jusqu'à ce qu'il n'a pas d'erreur (dépendances.) Après que je suis tombé sur quelques autres threads et des pièces de cet ensemble à l'abandon de toutes les procédures stockées et les fonctions.
Essayer cette
En plus de @Ivan réponse, les types doivent tous être inclus
Semble être assez dangereux fonctionnalité pour moi. Si vous souhaitez mettre en place quelque chose comme cela, je ne assurez-vous de bien le fixer dans une manière que vous ne serez pas en mesure de l'exécuter par accident.
Comme l'a suggéré avant que vous pourriez faire une sorte de procédure stockée vous-même.
Dans SQL Server 2005, vous pourriez avoir un coup d'oeil à ce système de table afin de déterminer et de trouver les objets que vous souhaitez déposer.
Ici, j'ai trouvé la nouvelle requête pour supprimer toutes les sp,les fonctions et déclencheurs
À ajouter à Ivan réponse, j'ai également eu le besoin, de supprimer tous les types définis par l'utilisateur, de sorte que j'ai ajouté à cela le script:
Il n'existe pas de déclaration qui peut être utilisé pour atteindre cet objectif.
Vous pouvez bien sûr créer vous-même un
stored procedure
que vous pouvez utiliser pour effectuer ces différentes tâches administratives.Vous pouvez ensuite exécuter la procédure à l'aide de cette instruction.
Vous devez désactiver tous les
triggers
etconstraints
premier.Après cela, vous pouvez générer les scripts pour supprimer les objets en tant que
Exécuter les instructions générées.
Pour supprimer tous les objets dans oracle :
1) Dynamique
2)Statique
essayez-le avec les sql2012 ou au-dessus,
ce sera aider à supprimer tous les objets d'un schéma sélectionné
de l'essayer....