Não quero digitar o nome de todas as tabelas para descartá-las. É possível com uma consulta?
sql
sql-server
Majid
fonte
fonte
Respostas:
Use a visualização INFORMATION_SCHEMA.TABLES para obter a lista de tabelas. Gere scripts de descarte na instrução select e solte-o usando o SQL dinâmico:
Versão do Sys.Tables
Nota: Se você tiver alguma
foreign Keys
definida entre tabelas, execute primeiro a consulta abaixo para desativar todos osforeign keys
presentes no seu banco de dados.Para mais informações, clique aqui .
fonte
[sys]
visualizações de esquema se a portabilidade entre rdbms 'não for necessária. stackoverflow.com/a/3654313/251174Print @sql
antesexec
. Então estou executando as declarações gota construídas dinamicamente atravéssp_executesql
Se você deseja usar apenas uma consulta SQL para excluir todas as tabelas, pode usar este:
Este é um procedimento armazenado oculto no servidor sql e será executado para cada tabela no banco de dados ao qual você está conectado.
Nota: Pode ser necessário executar a consulta algumas vezes para excluir todas as tabelas devido a dependências.
Nota2: Para evitar a primeira nota, antes de executar a consulta, verifique primeiro se há relações de chaves estrangeiras com alguma tabela. Se houver, basta desativar a restrição de chave estrangeira executando a consulta abaixo:
fonte
Se você não quiser digitar, poderá criar as instruções com isso:
Em seguida, copie e cole em uma nova janela do SSMS para executá-lo.
fonte
QUOTENAME
também o que parece arrumado.'DROP TABLE ' + QUOTENAME(name) + ';'
Você também pode usar o seguinte script para descartar tudo, incluindo o seguinte:
https://michaelreichenbach.de/how-to-drop-everything-in-a-mssql-database/
fonte
Gostaria apenas de fazer uma pequena alteração na resposta de @ NoDisplayName e usá-la
QUOTENAME()
naTABLE_NAME
coluna e também incluir aTABLE_SCHEMA
coluna em que as tabelas não estão nodbo
esquema.Ou usando
sys
visualizações de esquema (conforme comentário do @ swasheck):fonte
[sys]
visualizações de esquema se a portabilidade entre os rdbms 'não for necessária. stackoverflow.com/a/3654313/251174Como acompanhamento da resposta de Dave.Gugg, este seria o código que alguém precisaria para obter todas as linhas DROP TABLE no MySQL:
fonte
A maneira mais simples é descartar o banco de dados inteiro e criá-lo novamente:
Isso é tudo.
fonte
Se alguém mais teve um problema com a solução da melhor resposta (incluindo a desativação de chaves estrangeiras), aqui está outra solução minha :
fonte
Não é exatamente uma consulta, ainda é bastante curta e agradável:
fonte
Use o seguinte script para
drop
todosconstraints
:Em seguida, execute o seguinte para eliminar todas as tabelas:
Isso funcionou para mim no Banco de Dados SQL do Azure, onde
'sp_msforeachtable'
não estava disponível!fonte
Eu sei que esta pergunta é muito antiga, mas toda vez que eu precisar desse código ... a propósito, se você tiver tabelas e exibições, Funções e PROCEDIMENTOS, você poderá excluir tudo por este script .. então por que eu postar esse script? porque se você excluir todas as tabelas, você precisará excluir todas as visualizações e, se tiver Funções e PROCEDIMENTOS, você também precisará excluí-las
. Espero que ajude alguém.
fonte