Gibt es eine Möglichkeit, wo gespeicherte Prozeduren gespeichert werden, sodass ich die Dateien einfach auf meinen Desktop kopieren kann?
Gespeicherte Prozeduren werden nicht als Dateien gespeichert, sie werden als Metadaten gespeichert und uns Peons zur Verfügung gestellt (Danke Michael für die Erinnerung an sysschobjs
) in den Katalogansichten sys.objects
sys.procedures
, sys.sql_modules
usw. Für eine einzelne gespeicherte Prozedur können Sie die Definition direkt mit diesen Sichten abfragen (am wichtigsten sys.sql_modules.definition
) oder die OBJECT_DEFINITION()
funktioniert als (obwohl seine Beschreibung von syscomments
ist nicht ganz korrekt).
Um alle gespeicherten Prozeduren in eine einzige Datei zu extrahieren, wäre eine Option, den Objekt-Explorer zu öffnen, your server > databases > your database > programmability
zu erweitern und den Knoten stored procedures
hervorzuheben. Dann drücke F7 (View Details zum Objekt-Explorer ). Wählen Sie auf der rechten Seite alle gewünschten Prozeduren aus und klicken Sie mit der rechten Maustaste auf script stored procedure as > create to > file
. Dadurch wird eine einzelne Datei mit allen von Ihnen ausgewählten Prozeduren erstellt. Wenn Sie für jede Prozedur eine einzige Datei wünschen, können Sie diese Methode verwenden, indem Sie nur jeweils eine Prozedur auswählen. Dies könnte jedoch mühsam sein. Sie können diese Methode auch verwenden, um alle rechnungslegungsbezogenen Prozeduren in eine Datei zu schreiben, alle finanzbezogenen Prozeduren in eine andere Datei usw.
Eine einfachere Methode, um genau eine Datei pro gespeicherter Prozedur zu erstellen, wäre die Verwendung des Skript generieren-Assistenten < a> - Klicken Sie erneut im Objekt-Explorer mit der rechten Maustaste auf Ihre Datenbank und wählen Sie Tasks > Generate scripts
. Wählen Sie Select specific database objects
und überprüfen Sie die oberste Ebene Stored Procedures
. Weiter klicken. Für die Ausgabe wählen Sie Save scripts to a specific location
, Save to file
und Single file per object.
Diese Schritte können je nach Ihrer Version von SSMS leicht abweichen.
Gespeicherte Prozeduren werden nicht als separate Datei "gespeichert", die Sie ohne die Datenbank durchsuchen und lesen können. Es ist in der Datenbank gespeichert, zu der es in einer Reihe von Systemtabellen gehört. Die Tabelle, die die Definition enthält, heißt [sysschobjs] und ist für einen Endnutzer nicht einmal (direkt) zugänglich.
Um die Definition dieser gespeicherten Prozeduren aus der Datenbank abzurufen, verwende ich gerne diese Abfrage:
%Vor%Aber ich mag Aarons Antwort. Er gibt einige andere nette Optionen.
Das hängt davon ab, welche Version von SQL Server Sie ausführen. Bei neueren Versionen ist der Quellcode für gespeicherte Prozeduren über die Systemansicht sys.sql_modules
verfügbar. Eine einfachere Methode zum Abrufen der Quelle für eine gespeicherte Prozedur oder eine benutzerdefinierte Funktion (UDF) ist jedoch die Systemfunktion object_definition()
Ansichtsdefinition von sys.ssql_modules
verwendet):
In älteren Versionen war die Stored Procedure und UDF über die jetzt veraltete Systemansicht view sys.syscomments
verfügbar.
Und in älteren Versionen von SQL Server war es über die Systemtabelle 'dbo.syscomments'
verfügbarEs sollte darauf hingewiesen werden, dass die Quelle je nach Ihrem Zugriff und der Konfiguration der Datenbank möglicherweise nicht für Sie verfügbar ist oder dass sie verschlüsselt ist, was sie nicht besonders nützlich macht.
Sie können die Quelle auch programmgesteuert mithilfe von SMO
(Sql Server Management Objects) abrufen.
Ссылка
Tags und Links sql sql-server