it-swarm.com.de

SQL Server - Eine Kopie einer Datenbanktabelle erstellen und in dieselbe Datenbank stellen?

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.

81
sequel.learner

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;
167
Mahmoud Gamal

Schema kopieren (DDL generieren) über die SSMS-Benutzeroberfläche

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.

Kopieren Sie das Schema über T-SQL

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.

Daten kopieren

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
14
JohnLBevan

Wenn Sie die Tabelle mit all ihren Einschränkungen und Schlüsseln duplizieren möchten, gehen Sie wie folgt vor:

  1. Öffnen Sie die Datenbank in SQL Management Studio.
  2. Klicken Sie mit der rechten Maustaste auf die Tabelle, die Sie duplizieren möchten.
  3. Wählen Sie Script Table as -> Create to -> New Query Editor Window. Dadurch wird ein Skript generiert, um die Tabelle in einem neuen Abfragefenster neu zu erstellen.
  4. Ändern Sie den Tabellennamen und die relativen Schlüssel und Einschränkungen im Skript.
  5. Führen Sie das Skript aus.

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
6
Rousonur Jaman

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

  • quelle und Ziel: Ihre DB
  • quelltabelle: ABC
  • zieltabelle: ABC_1 (Tabelle wird erstellt)
3
Claude

Dies ist eine weitere Option:

select top 0 * into <new_table> from <original_table>
1
Keni

verwenden Sie SQL Server Management Studio oder Netcat und das wird einfacher zu manipulieren sein

1
gasroot

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

1
Chris D