Como posso eliminar todas as tabelas cujos nomes começam com uma determinada sequência?
Eu acho que isso pode ser feito com algumas SQL dinâmicas e as INFORMATION_SCHEMA
tabelas.
sql
sql-server
dynamic-sql
Blorgbeard está fora
fonte
fonte
close cmds; deallocate cmds
.Isso irá gerar um script.
Adicionando cláusula para verificar a existência da tabela antes de excluir:
fonte
WHERE TABLE_NAME LIKE 'em\_%' ESCAPE '\';
Isso fornecerá as tabelas em ordem de chave estrangeira e evitará a exclusão de algumas das tabelas criadas pelo SQL Server. O
t.Ordinal
valor dividirá as tabelas em camadas de dependência.fonte
No Oracle XE, isso funciona:
Ou se você deseja remover as restrições e liberar espaço também, use o seguinte:
O que gerará várias
DROP TABLE cascade constraints PURGE
instruções ...Para
VIEWS
usar isto:fonte
Vi este post quando estava procurando pela instrução mysql para soltar todas as tabelas do WordPress com base no @Xenph Yan. Aqui está o que eu fiz eventualmente:
isso fornecerá o conjunto de consultas suspensas para todas as tabelas que começa com wp_
fonte
Aqui está a minha solução:
E é claro que você precisa substituir
TABLE_PREFIX_GOES_HERE
pelo seu prefixo.fonte
Editar:
sp_MSforeachtable não está documentado, portanto, não é adequado para produção, pois seu comportamento pode variar dependendo da versão do MS_SQL.
fonte
fonte
A resposta de Xenph Yan foi muito mais limpa que a minha, mas aqui é a minha.
Apenas mude
tableName
para os caracteres que você deseja pesquisar.fonte
Isso funcionou para mim.
fonte
- Teste é o nome da tabela
fonte
fonte
Eu tive que fazer uma ligeira derivação na resposta de Xenph Yan, suspeito, porque tinha tabelas que não estavam no esquema padrão.
fonte
No caso de tabelas temporárias, convém tentar
fonte