Comment supprimer toutes les tables dont les noms commencent par une chaîne donnée?
Je pense que cela peut être fait avec du SQL dynamique et les INFORMATION_SCHEMA
tables.
sql
sql-server
dynamic-sql
Blorgbeard est sorti
la source
la source
close cmds; deallocate cmds
.Cela générera un script.
Ajout d'une clause pour vérifier l'existence de la table avant de la supprimer:
la source
WHERE TABLE_NAME LIKE 'em\_%' ESCAPE '\';
Cela vous permettra d'obtenir les tables dans l'ordre des clés étrangères et d'éviter de supprimer certaines des tables créées par SQL Server. La
t.Ordinal
valeur découpera les tables en couches de dépendances.la source
Sur Oracle XE, cela fonctionne:
Ou si vous souhaitez supprimer les contraintes et libérer de l'espace également, utilisez ceci:
Ce qui générera un tas de
DROP TABLE cascade constraints PURGE
déclarations ...Pour
VIEWS
utiliser ceci:la source
J'ai vu cet article lorsque je cherchais une instruction mysql pour supprimer toutes les tables WordPress basées sur @Xenph Yan, voici ce que j'ai finalement fait:
cela vous donnera l'ensemble des requêtes de suppression pour toutes les tables commençant par wp_
la source
Voici ma solution:
Et bien sûr, vous devez le remplacer
TABLE_PREFIX_GOES_HERE
par votre préfixe.la source
Éditer:
sp_MSforeachtable n'est pas documenté et ne convient donc pas à la production car son comportement peut varier en fonction de la version de MS_SQL.
la source
la source
La réponse de Xenph Yan était bien plus propre que la mienne mais voici la mienne tout de même.
Changez simplement
tableName
les caractères avec lesquels vous souhaitez effectuer la recherche.la source
Cela a fonctionné pour moi.
la source
- Test est le nom de la table
la source
la source
J'ai dû faire une légère dérivation sur la réponse de Xenph Yan que je soupçonne parce que j'avais des tables qui n'étaient pas dans le schéma par défaut.
la source
En cas de tables temporaires, vous voudrez peut-être essayer
la source