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 ...

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top