Qual è l'equivalente di 'CREATE TABLE & # 8230; COME & # 8230; " in SQL Server
-
03-07-2019 - |
Domanda
Sto lavorando con SQL Server (sono un esperto di SQL Server) e sto provando a modificare una tabella. Voglio CREARE TABLE LIKE
per archiviare in modo sicuro i dati mentre trascino chiavi e vincoli e tutte le altre rigamorole che SQL Server sembra richiedere quando si modifica sulla tabella originale ma non sono stato in grado di trovare una corrispondenza a quel comando ...
Soluzione
Puoi farlo
SELEZIONA * INTO #MyTable_tmp DA MyTable
Quindi modifica la tua MyTable e copia nuovamente i tuoi dati. Altri approcci che ho visto è creare una nuova tabella chiamandola Mytable_Tmp (non una tabella temporanea), che sarà la tua nuova tabella.
Quindi copia i tuoi dati eseguendo le migrazioni di cui hai bisogno. Quindi abbandonerai la tabella originale e rinominerai Mytable.
Oppure puoi ottenere uno dei tanti strumenti eccellenti che confrontano i database e generano script di differenza o VSTS DB Edition (viene fornito con lo sviluppatore) e puoi fare uno script diff da un file di progetto a un DB.
Modifica
Quando si esegue SELECT * INTO #MyTable FROM MyTable, SQL Server crea una nuova tabella temporanea denominata #MyTable che corrisponde a ciascuna colonna e tipo di dati dalla clausola select. In questo caso stiamo selezionando * in modo che corrisponda a MyTable. Questo crea solo le colonne che non copia i valori predefiniti, gli indici dei vincoli o qualsiasi altra cosa.
Altri suggerimenti
vuoi ricreare la stessa struttura?
che ne dici di questo
SELECT *
into test
FROM myRealTable
where 0=1
nessun dato verrà inserito nella nuova tabella