Ich habe eine Tabelle ABC in einer Datenbank-DB. Ich möchte Kopien von ABC mit den Namen ABC_1, ABC_2, ABC_3 in derselben Datenbank erstellen. Wie kann ich das mit Management Studio (vorzugsweise) oder SQL-Abfragen tun?
Dies ist für SQL Server 2008 R2.
sql
sql-server-2008
tsql
sql-server-2008-r2
sequel.learner
quelle
quelle
Antworten:
Verwendung
SELECT ... INTO
:Dadurch wird eine neue Tabelle erstellt
ABC_1
, die dieselbe Spaltenstruktur wie hatABC
und dieselben Daten enthält. 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, um nur eine neue leere Tabelle mit derselben Spaltenstruktur zu erstellen, fügen Sie eine
WHERE
Klausel mit einem falschen Ausdruck hinzu:quelle
SELECT TOP(0) *
sauberer als die immer falscheWHERE
Aussage MethodeKopieren Sie das Schema (DDL generieren) über die SSMS-Benutzeroberfläche
Erweitern Sie in SSMS Ihre Datenbank im Objekt-Explorer , gehen Sie zu Tabellen , klicken Sie mit der rechten Maustaste auf die Tabelle, die Sie interessiert, und wählen Sie Skripttabelle als , Erstellen für , Neues Abfrage-Editor-Fenster . Führen Sie eine Suche und Ersetzung durch ( STRG + H ), um den Tabellennamen zu ändern (dh geben Sie sie
ABC
in das Feld Suchen nach undABC_1
in Ersetzen durch ein und klicken Sie dann auf OK ).Schema über T-SQL kopieren
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 alle 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):
quelle
IDENTITY_INSERT
auf ON setzen, damit die Identitätsspalte "manuell" gesetzt werden kann. Sie haben die Reihenfolge in Ihrem Beispiel gemischt. Außerdem müssen Sie EXPLICIT Ihre Spalten auflistenWenn 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:
quelle
1. Option
2. Option: Verwenden Sie SSIS, dh klicken Sie mit der rechten Maustaste auf die Datenbank im Objekt-Explorer> Alle Aufgaben> Daten exportieren
quelle
Dies ist eine weitere Option:
quelle
Verwenden Sie SQL Server Management Studio oder Netcat und das wird einfacher zu manipulieren SQL
quelle
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 Funktion zum Kopieren von Tabellen optional ist).
quelle