Ich habe eine Tabelle ABC in einer Datenbank DB. Ich möchte Kopien von ABC mit den Namen ABC_1, ABC_2, ABC_3 im selben DB erstellen. Wie kann ich das entweder mit Management Studio (vorzugsweise) oder mit SQL-Abfragen tun?
Dies ist für SQL Server 2008 R2.
Verwenden SELECT ... INTO
:
SELECT *
INTO ABC_1
FROM ABC;
Dies erstellt eine neue Tabelle ABC_1
mit derselben Spaltenstruktur wie ABC
und denselben Daten. Einschränkungen (z. B. Schlüssel, Standardwerte) werden jedoch nicht kopiert.
Sie können diese Abfrage jedes Mal mehrmals mit einem anderen Tabellennamen ausführen.
Wenn Sie die Daten nicht kopieren müssen, nur um eine neue leere Tabelle mit derselben Spaltenstruktur zu erstellen, fügen Sie eine WHERE
-Klausel mit einem falschen Ausdruck hinzu:
SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
Erweitern Sie in SSMS Ihre Datenbank in Object Explorer, gehen Sie zu Tables, klicken Sie mit der rechten Maustaste auf die Tabelle, die Sie interessiert, und wählen Sie Script Table As, Erstellen für, Neues Abfrageeditorfenster. Suchen und ersetzen Sie ( CTRL + H ), um den Tabellennamen zu ändern ( dh setze ABC
in das Find What Feld und ABC_1
in Ersetzen durch und dann auf OK ) klicken.
Die anderen Antworten, die zeigen, wie dies mit SQL gemacht wird, funktionieren ebenfalls gut, aber der Unterschied zu dieser Methode besteht darin, dass Sie auch Indizes, Einschränkungen und Trigger erhalten.
Wenn Sie Daten einschließen möchten, führen Sie nach dem Erstellen dieser Tabelle das folgende Skript aus, um alle Daten aus ABC zu kopieren (wobei Sie die gleichen ID-Werte beibehalten, wenn Sie ein Identitätsfeld haben):
set identity_insert ABC_1 on
insert into ABC_1 (column1, column2) select column1, column2 from ABC
set identity_insert ABC_1 off
Wenn Sie die Tabelle mit all ihren Einschränkungen und Schlüsseln duplizieren möchten, gehen Sie wie folgt vor:
Führen Sie dann zum Kopieren der Daten das folgende Skript aus:
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF
1. Möglichkeit
select *
into ABC_1
from ABC;
2. Option: Verwenden Sie SSIS, dh klicken Sie mit der rechten Maustaste auf die Datenbank im Objekt-Explorer> Alle Aufgaben> Daten exportieren
Dies ist eine weitere Option:
select top 0 * into <new_table> from <original_table>
verwenden Sie SQL Server Management Studio oder Netcat und das wird einfacher zu manipulieren sein
Sie müssen SSIS schreiben, um die Tabelle und ihre Daten, Einschränkungen und Trigger zu kopieren. Wir haben in unserer Organisation eine Software namens Kal Admin von kalrom Systems, die eine kostenlose Version zum Herunterladen hat (ich denke, dass die Kopiertabellen-Funktion optional ist).