Déposer toutes les bases de données à partir du serveur
J'ai un serveur (SQL Server 2005) avec plus de 300 bases de données. Je ne veux pas le droit-cliquez un par un, puis sélectionnez Delete
.
Comment puis-je supprimer toutes les bases de données facilement?
- Je ne peux pas penser à une seule situation où quelqu'un aurait besoin de déplacer toutes les bases de données utilisateur sur un serveur. Je n'ai personnellement jamais vu cela. Pouvez-vous expliquer pourquoi vous avez besoin de faire cela?
- J'ai Un institut , Tous les étudiants ont un DB ! alors ...
- La fin de la partie ici, mais j'ai eu besoin de faire cela sur un local de la boîte de dev de temps en temps
- Vous voulez dire que vous avez besoin de la planification pour cela?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire par le biais de la SSMS GUI. Sélectionnez la
Databases
nœud F7 pour afficher l'Explorateur d'Objets de Détails, Sélectionnez toutes les bases de données que vous souhaitez supprimer, appuyez sur "Supprimer" et sélectionnez "Fermer les Connexions Existantes" et "Continuer après l'erreur" options.Encore par le biais d'TSQL vous pouvez faire
Ci-dessus est non testé ma fin, pour des raisons qui devrait être évident, de sorte que vous pouvez remplacer le
DROP
de commande avecPRINT
commandes pour vérifier les choses.sp_MSforeachdb
serait ignorer les bases de données qui sont déjà dansSINGLE_USER
mode. Dans ce cas, l'utilisateur de l'INTERFACE utilisateur ou de construction d'une instruction par la sélection de[master].[sys].[databases]
comme @pellared suggéré stackoverflow.com/a/18787646/671785Et voici ma solution pour le même problème:
Cela tuera toutes les connexions, et de supprimer toutes les bases de données figurant pas dans la liste:
Voici mon script PowerShell version. DropAllDatabases.ps1
Remarque: Vous devrez peut-être mettre à jour le $sqlCmdPath à votre version de SQL.
J'ai été confronté à un problème avec mes bases de données, et les solutions ci-dessus n'ont pas de travail.
Je voulais simplement supprimer toutes mes bases de données, mais j'ai eu un problème avec leurs noms. En effet, j'avais des bases de données appelée comme ceci :
La façon la plus facile de les supprimer de la base de données (testé sur MariaDB) est d'exécuter la commande suivante :
Ce genre de nom qui semble être un problème lorsque nous directement souhaitez exécuter une commande SQL à partir d'un fichier bash, parce que nous avons à spécifier la base de données du nom entre guillemets (`).
Si vous avez le même problème, et si vous avez beaucoup de bases de données, vous n'avez qu'à créer un script batch avec toutes les commandes dont vous avez besoin, et ensuite exécuter celui-ci dans votre serveur SQL server.
Exemple avec test.sh :
Je pense que ce script fonctionne dans tous les cas. Espérons que cela a aidé.
J'ai utilisé la réponse fournie par Pellared et modifié légèrement.
Tout MartinSmith réponse est la bonne solution. J'ai trouvé le Supprimer des Objets de la fenêtre, juste assis avec le statut de "dans le processus" lors de la suppression de la première de nombreuses bases de données. Cela était dû à un terrain envahi la base de données msdb historique de sauvegarde qui a été d'essayer d'être nettoyés avec de l' 'Supprimer la sauvegarde et la restauration de l'histoire de l'information pour les bases de données' option cochée.
Consulter ces liens pour plus d'informations sur le nettoyage de l'historique de sauvegarde
Un
Deux
Après l'ajout de l'index fourni ici, la suppression traitée par dans un délai raisonnable.
Vous pouvez utiliser le Curseur comme ceci:
Dans mon blog est plus sur ce sujet.
http://www.pigeonsql.com
La manière la plus sûre de la suppression (en baisse) toutes les bases de données MS-SQL à l'aide de T-SQL est d'exclure tous les systèmes de bases de données, et toute autre base de données(s) que vous souhaitez conserver, et des bases de données telles que les Données de l'Entrepôt de données "DW", Rapport de la base de données du serveur.
À l'exclusion de toutes les bases de données que nous voulons garder, y compris toutes les bases de données système fera-il sécuritaire de supprimer tout ce que nous ne voulons pas garder.
Par exemple: