Ich habe SQL Server 2008
SQL Server Management Studio.
Ich muss Daten aus Table1
in Datenbank1 auswählen . Dann muss ich einige Werte in den Ergebnissen und insert values into Table1
in der Datenbank2 bearbeiten .
Oder lassen Sie es mich anders sagen.
Wie kann ich die Daten in einer Tabelle in konvertieren insert script
.
sql
sql-server
sql-server-2008
ssms
Captain Comic
quelle
quelle
Antworten:
SSMS Toolpack (das ist KOSTENLOS wie in Bier) hat eine Vielzahl von tollen Funktionen - einschließlich INSERT - Anweisungen zu erzeugen aus Tabellen.
Update: Für SQL Server Management Studio 2012 (und neuer) ist SSMS Toolpack nicht mehr kostenlos, erfordert jedoch eine geringe Lizenzgebühr.
quelle
Hier ist eine andere Methode, die in bestimmten Situationen einfacher sein kann als die Installation von Plugins oder externen Tools:
select [whatever you need]
INTO temp.table_name
from [... etc ...]
temp.table_name
im Bildschirm "Objekte auswählen" auf Weiter.INSERT
Anweisungen in einem neuen Abfragefenster angezeigt werden.[temp.table_name]
zu ändern[your_table_name]
.drop table [temp.table_name]
.quelle
temp
Hier bezieht sich auf jedes Schema, auf das Sie Zugriff haben. Sie können entweder ein (create schema temp
) erstellen und es dann entfernen, wenn Sie fertig sind, oder (besser) einfach das Schema verwenden, in dem Sie gerade arbeiten.In SSMS:
Klicken Sie mit der rechten Maustaste auf die Datenbank> Aufgaben> Skripte generieren
Nächster
Wählen Sie "Bestimmte Datenbankobjekte auswählen" und überprüfen Sie die Tabelle mit dem Skript "Weiter"
Klicken Sie
Advanced >
in die Liste der Optionen, scrollen Sie nach unten und suchen Sie nach den "zu skriptenden Datentypen" und ändern Sie sie in "Nur Daten"> OKWählen Sie "In neuem Abfragefenster speichern"> Weiter> Weiter> Fertig stellen
Alle 180 Zeilen sind jetzt als 180 Insert-Anweisungen geschrieben!
quelle
Native Methode :
Zum Beispiel, wenn Sie eine Tabelle haben
Du kannst das:
quelle
1- Erklärung der Skripte
A) Die Syntax zum Einfügen von Daten in eine Tabelle lautet wie folgt
C) Um die obigen Daten aus der vorhandenen Tabelle zu erhalten, müssen wir die Auswahlabfrage so schreiben, dass die Ausgabe in Form der obigen Skripte erfolgt
D) Dann habe ich endlich die obige Variable verkettet, um das endgültige Skript zu erstellen, das bei der Ausführung ein Einfügeskript generiert
E)
F) Und schließlich die obige Abfrage ausgeführt
EXECUTE(TEXT)
Die
QUOTENAME()
Funktion G) wird verwendet, um Spaltendaten in Anführungszeichen zu setzenH)
ISNULL
wird verwendet, weil, wenn eine ZeileNULL
Daten für eine Spalte enthält, die Abfrage fehlschlägt und daherNULL
zurückgibt, um zu vermeiden, dass ich verwendet habeISNULL
I) Und erstellte die sp
sp_generate_insertscripts
dafür1- Geben Sie einfach den gewünschten Tabellennamen ein
insert script
2- Filterbedingung, wenn Sie bestimmte Ergebnisse wünschen
quelle
Dies ist über den Visual Studio SQL Server-Objekt-Explorer möglich.
Sie können im Kontextmenü auf "Daten anzeigen" klicken, um die erforderliche Tabelle anzuzeigen, Ergebnisse zu filtern und Ergebnisse als Skript zu speichern.
quelle
Gehen Sie mit Visual Studio wie folgt vor
Erstellen Sie ein Projekt vom Typ SQL Server -> SQL Server-Datenbankprojekt
Öffnen Sie den SQL Server-Explorer CTL- \, CTL-S
Fügen Sie einen SQL Server hinzu, indem Sie mit der rechten Maustaste auf das SQL Server-Symbol klicken. Selcet NEUEN SERVER HINZUFÜGEN
Navigieren Sie zu der Tabelle, die Sie interessiert
Rechtsklick -> DATEN ANZEIGEN
Klicken Sie auf die obere linke Zelle, um alles hervorzuheben (ctl-A scheint nicht zu funktionieren).
Rechtsklick -> SCript
Das ist fabelhaft. Ich habe im Laufe der Jahre alles versucht, was oben aufgeführt ist. Ich weiß, dass es da draußen ein Tool gibt, das dies und noch viel mehr kann. Ich kann mir den Namen nicht vorstellen. Aber es ist sehr teuer.
Viel Glück. Ich habe das gerade herausgefunden. Habe es nicht ausgiebig mit Textfeldern usw. getestet, aber es sieht so aus, als würde es dich weit bringen.
Greg
quelle
Erstellen Sie eine separate Tabelle mit der Anweisung into
Wählen Sie * in Test_123 aus [dbo]. [Mitarbeiter], wobei Name wie '% Test%'
Zur Datenbank gehen Klicken Sie mit der rechten Maustaste auf die Datenbank. Klicken Sie auf Skript generieren. Wählen Sie Ihre Tabelle aus. Wählen Sie die Option advanace und wählen Sie das Attribut "Nur Daten". Wählen Sie die Datei "In neuer Abfrage öffnen".
SQL generiert ein Skript für Sie
quelle
Sie können die Option "Ergebnis in Datei" in SSMS auswählen und Ihr ausgewähltes Ergebnis in eine Datei exportieren und Ihre Änderungen in der Ergebnisdatei vornehmen. Schließlich können Sie BCP - Massenkopie verwenden, die Sie in Tabelle 1 in Datenbank 2 einfügen können.
Ich denke, für Masseneinfügung müssen Sie .rpt-Datei in .csv-Datei konvertieren
Hoffe es wird helfen.
quelle
Ich hatte ein ähnliches Problem, musste aber in der Lage sein, eine INSERT-Anweisung aus einer Abfrage (mit Filtern usw.) zu erstellen.
Also habe ich folgendes Verfahren erstellt:
Sie können es dann verwenden, indem Sie die Ausgabe Ihrer Abfrage in eine temporäre Tabelle schreiben und die folgende Prozedur ausführen:
Hinweis: Bei dieser Prozedur werden die Werte nur in eine Zeichenfolge umgewandelt, wodurch die Daten möglicherweise etwas anders aussehen. Mit DATETIME zum Beispiel gehen die Sekunden verloren.
quelle
Dies ist eine vielseitigere Lösung (die etwas mehr kann als die Frage stellt) und kann in einem Abfragefenster verwendet werden, ohne dass ein neuer gespeicherter Prozess erstellt werden muss - nützlich in Produktionsdatenbanken, beispielsweise wenn Sie keinen Schreibzugriff haben .
Um den Code zu verwenden, ändern Sie ihn bitte gemäß den Inline-Kommentaren, in denen seine Verwendung erläutert wird. Sie können diese Abfrage dann einfach in einem Abfragefenster ausführen und die gewünschten INSERT-Anweisungen drucken.
quelle
Sie können SQL Server Integration Service Packages verwenden, die speziell für den Import- und Exportvorgang entwickelt wurden .
VS verfügt über ein Paket zum Entwickeln dieser Pakete, wenn Sie SQL Server vollständig installieren.
Integration Services im Business Intelligence Development Studio
quelle
Ich denke, es ist auch möglich mit Ad-hoc-Abfragen, Sie können das Ergebnis in eine Excel-Datei exportieren und diese Datei dann in Ihr datierbares Objekt importieren oder so verwenden, wie es ist, und dann die Excel-Datei in die zweite Datenbank importieren. Schauen Sie sich diesen Link an, dies kann Ihnen helfen viel.
http://vscontrols.blogspot.com/2010/09/import-and-export-excel-to-sql-server.html
quelle
Ich habe folgendes erstellt
procedure
:Dann können Sie es so verwenden:
Die Ausgabe wäre ungefähr so:
Wenn Sie nur einen
@top
Zeilenbereich abrufen möchten, verwenden Sie den folgenden Parameter:quelle
Wenn Sie Oracle verwenden (oder die Anwendung für den SQL Server konfigurieren), erledigt Oracle SQL Developer dies für Sie. Wählen Sie "Entladen" für eine Tabelle und folgen Sie den Optionen (deaktivieren Sie "DDL", wenn Sie nicht möchten, dass alle Tabellen erstellt werden).
quelle
Ich habe dieses SMSMS Boost Addon gefunden, das kostenlos ist und unter anderem genau dies tut. Sie können mit der rechten Maustaste auf die Ergebnisse klicken und Skriptdaten als auswählen.
quelle
Sie können dieses Q2C.SSMSPlugin verwenden , das kostenlos und Open Source ist. Sie können mit der rechten Maustaste klicken und "Abfrage zum Befehl ausführen ... -> Abfrage zum Einfügen ..." auswählen. Genießen)
quelle
Sie können eine
INSERT INTO SELECT
Anweisung verwenden, um die Ergebnisse einer ausgewählten Abfrage in eine Tabelle einzufügen. http://www.w3schools.com/sql/sql_insert_into_select.aspBeispiel:
quelle