O que é o equivalente a 'CREATE TABLE ... como ..." no SQL Server
-
03-07-2019 - |
Pergunta
Eu estou trabalhando com o SQL Server (eu sou um noob SQL Server) e tentar alterar uma tabela. Quero CREATE TABLE LIKE
para armazenar com segurança de dados quando eu deixar cair as chaves e restrições e todos os outros rigamorole que o SQL Server parece exigir ao alterar a tabela original, mas eu não tenho sido capaz de encontrar uma correspondência a esse comando ...
Solução
Você pode fazer
SELECT * INTO #MyTable_tmp FROM MyTable
Em seguida, modificar o seu MyTable e copiar suas costas dados. Outras abordagens que eu vi é criar uma nova chamada tabela que Mytable_Tmp (não uma tabela temporária), que será sua nova tabela.
Em seguida, copie os seus dados fazendo nenhum migrações que você precisa. Então você vai cair a tabela original e fazer uma renomeação em myTable.
Ou você pode obter uma das muitas ferramentas its que comparam bancos de dados e gerar scripts de diferença ou VSTS DB Edition (Vem com desenvolvedor) e você pode fazer um script diff de um arquivo de projeto para um DB.
Editar
Quando você executar SELECT * INTO #myTable FROM MyTable, SQL Server cria uma nova tabela temporária chamada #myTable que corresponde cada coluna e tipo de dados a partir de sua cláusula select. Neste caso estamos selecionando * por isso vai corresponder MyTable. Isso só cria as colunas não copiar padrões, índices restrições ou qualquer outra coisa.
Outras dicas
você deseja recriar a mesma estrutura?
como sobre este
SELECT *
into test
FROM myRealTable
where 0=1
Nenhum dado será inserido na nova tabela