Frage

Ich arbeite mit SQL Server (Ich bin ein SQL Server Noob) und versuchen, eine Tabelle zu ändern. Ich möchte sicher CREATE TABLE LIKE Daten zu speichern, während ich Schlüssel und Integritätsregeln und alle anderen rigamorole, dass SQL Server scheint auf der ursprünglichen Tabelle zu verlangen, wenn zu ändern, aber ich habe nicht auf diesen Befehl eine Übereinstimmung zu finden ...

War es hilfreich?

Lösung

Sie können tun,

SELECT * INTO #MyTable_tmp FROM MyTable

Ändern Sie dann Ihre MyTable, und kopieren Sie Ihre Daten wieder in. Andere Ansätze, die ich gesehen habe, ist eine neue Tabelle erstellen nennen es Mytable_Tmp (kein temp-Tabelle), die Ihre neue Tabelle sein wird.

Dann kopieren Sie Ihre Daten alle Migrationen Sie benötigen. Dann werden Sie die Original-Tabelle löschen und eine Umbenennungs auf Mytable tun.

Sie können auch eine der viele excellant Tool erhalten, die Datenbanken zu vergleichen und Unterschiede Skripte oder VSTS DB Ausgabe erzeugen (Komm mit Entwickler), und Sie können aus einer Projektdatei auf eine DB ein Diff-Skript tun.

Bearbeiten

Wenn Sie SELECT ausführen * INTO #MyTable FROM MyTable SQL Server erstellt eine neue temporäre Tabelle #MyTable genannt, die jede Spalte und Datentyp aus dem select-Klausel übereinstimmt. In diesem Fall wählen wir * so wird es MyTable entsprechen. Das schafft nur die Spalten nicht in Verzug, Einschränkungen Indizes oder irgendetwas anderes kopiert.

Andere Tipps

Sie wollen die gleiche Struktur neu erstellen?

Wie wäre es dieses

 SELECT *
 into test
 FROM myRealTable
 where 0=1

werden keine Daten in die neue Tabelle eingefügt werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top