765 Stimmen

Wie lassen sich INSERT-Anweisungen für eine SQL Server-Tabelle am besten automatisch generieren?

Wir schreiben eine neue Anwendung, und während des Testens benötigen wir eine Reihe von Dummy-Daten. Ich habe diese Daten mithilfe von MS Access hinzugefügt, um Excel-Dateien in die entsprechenden Tabellen zu übertragen.

Von Zeit zu Zeit wollen wir die betreffenden Tabellen "auffrischen", was bedeutet, dass wir sie alle löschen, neu erstellen und eine gespeicherte MS Access-Anhangsabfrage ausführen.

Der erste Teil (Löschen und Neuanlegen) ist ein einfaches SQL-Skript, aber der letzte Teil lässt mich erschaudern. Ich möchte ein einziges Setup-Skript, das eine Reihe von INSERTs hat, um die Dummy-Daten zu regenerieren.

Ich habe die Daten jetzt in den Tabellen. Wie kann ich am besten automatisch eine große Liste von INSERT-Anweisungen aus diesem Datensatz erstellen?

Der einzige Weg, den ich mir vorstellen kann, ist, die Tabelle in einer Excel-Tabelle zu speichern und dann eine Excel-Formel zu schreiben, um für jede Zeile eine EINFÜGE zu erstellen, was sicherlich nicht der beste Weg ist.

Ich verwende das Management Studio 2008, um eine Verbindung zu einer SQL Server 2005-Datenbank herzustellen.

9 Stimmen

Wow, ich habe gerade meine Installation überprüft und du hast Recht, das "Skript Tabelle als" -> "EINFÜGEN" gibt dir nur eine Einfügevorlage, nicht eine Seite mit Einfügungen mit deinen tatsächlichen Daten! Ich hoffe, deine Frage wird beantwortet, denn ich hätte auch gerne eine einfache Möglichkeit, das zu tun, was du fragst.

2 Stimmen

@JosephStyons Ich habe die Frage ein wenig aktualisiert, um sie stark zu vereinfachen und zu verdeutlichen, und um sie relevant zu halten. Diese Frage hat sich zu einer wichtigen Frage auf StackOverflow entwickelt, und es wäre schön, die Arbeitsbelastung für Leute, die hier nach einer Lösung suchen, gering zu halten =) Schauen Sie, ob Sie eine der entfernten Informationen wichtig finden. Wenn Sie Einwände gegen die Änderung haben, können Sie sie gerne zurücknehmen.

1 Stimmen

@EvanCarroll Vielen Dank, Evan. Ich habe es zurückgenommen; ich schlage respektvoll vor, dass einige der Hintergrundinformationen nicht nur für den Kontext nützlich sind, sondern auch, um die Frage mit Suchbegriffen aus der realen Welt zu beantworten. Eine Ihrer Änderungen habe ich beibehalten; ich habe den Absatz über Toad for Oracle weggelassen. Das ist wahrscheinlich nicht sehr hilfreich.

0voto

shahkalpesh Punkte 32505

Ich bin nicht sicher, ob ich Ihre Frage richtig verstehe.

Wenn Sie Daten in MS-Access haben, die Sie zu SQL Server verschieben möchten, können Sie DTS verwenden.
Und ich nehme an, dass Sie den SQL Profiler verwenden können, um alle INSERT-Anweisungen zu sehen, die durchlaufen.

0voto

Ich habe auch viel darüber recherchiert, aber ich konnte keine konkrete Lösung dafür finden. Derzeit verfolge ich den Ansatz, die Inhalte in Excel aus dem SQL Server Managment Studio zu kopieren und dann die Daten in Oracle-TOAD zu importieren und dann die Einfügeanweisungen zu generieren

0 Stimmen

Hallo Vineet, wenn Sie meine Lösung ausprobieren und mir mitteilen würden, was Ihren Anforderungen nicht entspricht, würde ich Ihnen gerne bei der automatischen SQL-Skripterstellung helfen. github.com/drumsta/sql-generate-insert

0voto

Jack Punkte 104

Sie können es so schwierig oder so einfach machen, wie Sie wollen. Ich bevorzuge das Letztere.

Wenn Sie bereits über einen Datensatz verfügen, müssen Sie nur noch eine Aktionsabfrage in MS Access hinzufügen:

insert into Table1("column list here") select "column list here" from Table2

HINWEIS: Tabelle2 könnte eine Abfrage sein und Tabelle1 und Tabelle2 könnten eine MS Access-Tabelle oder eine SQL-Server-Tabelle sein.

1 Stimmen

MS Access ist ein ziemlich praktisches Datenbank-Taschenmesser, aber ich war auf der Suche nach Lösungen, die nativ für SQL Server sind. Danke für die Anregung!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X