Ich bin neu in SQL, und ich musste 2 MDF-Datenbanken zu einer kombinieren. Ich habe das mit SQL Server 2008 Manager gemacht - Aufgaben> Tabellen importieren / exportieren. Die Tabellen und Ansichten wurden erfolgreich kopiert, aber es gibt keine gespeicherten Prozeduren in der neuen Datenbank. Gibt es eine Möglichkeit, das zu tun?
sql
sql-server-2008
copy
procedures
Eiche
quelle
quelle
Antworten:
quelle
Dieser Code kopiert alle in der Master-Datenbank gespeicherten Prozeduren in die Zieldatenbank. Sie können nur die gewünschten Prozeduren kopieren, indem Sie die Abfrage nach dem Prozedurnamen filtern.
@sql ist definiert als nvarchar (max), @Name ist die Zieldatenbank
quelle
@sql
&@Name
:DECLARE @sql NVARCHAR(MAX); DECLARE @Name NVARCHAR(32);
Spät, gibt aber mehr Details, die nützlich sein könnten ...
Hier ist eine Liste von Dingen, die Sie mit Vor- und Nachteilen tun können
Generieren Sie Skripte mit SSMS
Tools von Drittanbietern
Systemansichten
Hier erfahren Sie, wie Sie eine Liste aller Prozeduren in einer Datenbank abrufen, die in einer anderen Datenbank nicht vorhanden sind
quelle
Ich habe diesen Beitrag ursprünglich auf der Suche nach einer Lösung zum Kopieren gespeicherter Prozeduren aus meiner Remote-Produktionsdatenbank in meine lokale Entwicklungsdatenbank gefunden. Nachdem ich den in diesem Thread vorgeschlagenen Ansatz erfolgreich angewendet hatte, stellte ich fest, dass ich zunehmend faul (oder einfallsreich, je nachdem, was Sie bevorzugen) wurde, und wollte, dass dies automatisiert wird. Ich bin auf diesen Link gestoßen, der sich als sehr hilfreich erwiesen hat (danke vincpa), und habe ihn erweitert, was zu der folgenden Datei führte (schema_backup.ps1):
Ich habe eine .bat-Datei, die dies aufruft und vom Taskplaner aufgerufen wird. Nach dem Aufruf der Powershell-Datei habe ich:
Diese Zeile geht durch das Verzeichnis und löscht die Prozeduren, die neu erstellt werden sollen. Wenn dies keine Entwicklungsumgebung wäre, möchte ich Prozeduren nicht programmgesteuert auf diese Weise löschen. Ich benenne dann alle gespeicherten Prozedurdateien um, um .sql zu haben:
Und dann laufen:
Dadurch werden alle .sql-Dateien durchlaufen und die gespeicherten Prozeduren neu erstellt. Ich hoffe, dass sich irgendein Teil davon als hilfreich für jemanden erweisen wird.
quelle
Mit der SSMS-Funktion "Generate Scripts ..." können Sie alles ausschreiben, was Sie übertragen möchten. Klicken Sie mit der rechten Maustaste auf die Quellendatenbank in SSMS, wählen Sie "Skripte generieren ..." und folgen Sie dem Assistenten. Führen Sie dann Ihr resultierendes Skript aus, das jetzt die Anweisungen zum Erstellen der gespeicherten Prozedur enthält.
quelle
verwenden
um alle Ihre Verfahren zu zeigen;
um den Code zu bekommen
und deine Kreativität, etwas zu bauen, um sie alle zu durchlaufen und den Exportcode zu generieren :)
quelle
Sie können ein Skript für die gespeicherten Prozesse erstellen, wie in anderen Antworten dargestellt. Sobald das Skript generiert wurde, können Sie es
sqlcmd
für Ziel-DB wie ausführenquelle
Klicken Sie in Mgmt Studio mit der rechten Maustaste auf Ihre ursprüngliche Datenbank, dann auf Aufgaben und dann auf Skripte generieren ... - Folgen Sie dem Assistenten.
quelle
SELECT-Definition + char (13) + 'GO' FROM MyDatabase.sys.sql_modules s INNER JOIN MyDatabase.sys.procedures p ON [s]. [Object_id] = [p]. [Object_id] WHERE p.name LIKE 'Something% '"queryout" c: \ SP_scripts.sql -S MyInstance -T -t -w
Holen Sie sich die SP und führen Sie es aus
quelle
Eine weitere Option ist das Übertragen gespeicherter Prozeduren mit SQL Server Integration Services (SSIS) . Es gibt eine Aufgabe namens SQL Server-Objektaufgabe übertragen . Mit der Aufgabe können Sie folgende Elemente übertragen:
Es ist ein grafisches Tutorial für die Aufgabe "SQL Server-Objekte übertragen".
quelle