Ich bin neu in SQL Server. Ich bin über SQL Server Management Studio in meiner Datenbank angemeldet.
Ich habe eine Liste gespeicherter Prozeduren. Wie kann ich den gespeicherten Prozedurcode anzeigen?
Ein Rechtsklick auf die gespeicherte Prozedur hat keine Option wie view contents of stored procedure
.
Vielen Dank.
sql-server
tsql
ssms
DG3
quelle
quelle
Antworten:
Klicken Sie mit der rechten Maustaste auf den gespeicherten Prozess und wählen Sie die gespeicherte Skriptprozedur als CREATE to New Query Editor-Fenster / Zwischenablage / Datei
Sie können auch Änderungen vornehmen, wenn Sie mit der rechten Maustaste auf den Namen klicken
Wenn Sie mehr als einen Prozess gleichzeitig ausführen möchten, klicken Sie auf den Ordner für gespeicherte Prozeduren, drücken Sie F7 mit STRG und klicken Sie auf Alle gewünschten auswählen. Klicken Sie dann mit der rechten Maustaste und wählen Sie die gespeicherte Skriptprozedur als ERSTELLEN aus
quelle
Ich denke, dies ist eine bessere Möglichkeit, den Code einer gespeicherten Prozedur anzuzeigen:
quelle
Die Option heißt
Modify
:Dadurch wird Ihnen der T-SQL-Code für Ihre gespeicherte Prozedur in einem neuen Abfragefenster mit einem
ALTER PROCEDURE ...
Lead-In angezeigt, sodass Sie Ihre Prozedur einfach ändern oder ergänzen und aktualisieren könnenquelle
Dies ist eine weitere Möglichkeit, die Definition der gespeicherten Prozedur anzuzeigen
SELECT OBJECT_DEFINITION (OBJECT_ID(N'Your_SP'))
quelle
Verwenden Sie die folgende Abfrage: -
SELECT object_definition(object_id) as [Proc Definition] FROM sys.objects WHERE type='P'
quelle
Die anderen Antworten, die empfehlen, den Objektexplorer zu verwenden und die gespeicherte Prozedur in ein neues Abfrageeditorfenster und die anderen Abfragen zu schreiben, sind solide Optionen.
Ich persönlich verwende gerne die folgende Abfrage, um die Definition / den Code der gespeicherten Prozedur in einer einzelnen Zeile abzurufen (ich verwende Microsoft SQL Server 2014, sollte aber anscheinend mit SQL Server 2008 und höher funktionieren).
SELECT definition FROM sys.sql_modules WHERE object_id = OBJECT_ID('yourSchemaName.yourStoredProcedureName')
Weitere Informationen zu sys.sql_modules:
https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql
quelle
exec sp_helptext 'your_sp_name' - vergiss die Anführungszeichen nicht
In Management Studio werden die Ergebnisse standardmäßig in der Rasteransicht angezeigt. Wenn Sie es in der Textansicht sehen möchten, gehen Sie zu:
Abfrage -> Ergebnisse zu -> Ergebnisse zu Text
oder STRG + T und dann Ausführen.
quelle
Mit dieser Abfrage können Sie den gesamten in der Datenbank gespeicherten Objektcode anzeigen:
USE [test] --Database Name SELECT sch.name+'.'+ob.name AS [Object], ob.create_date, ob.modify_date, ob.type_desc, mod.definition FROM sys.objects AS ob LEFT JOIN sys.schemas AS sch ON sch.schema_id = ob.schema_id LEFT JOIN sys.sql_modules AS mod ON mod.object_id = ob.object_id WHERE mod.definition IS NOT NULL --Selects only objects with the definition (code)
quelle
Falls Sie nicht wie ich die Berechtigung zum 'Ändern' haben, können Sie ein kostenloses Tool namens "SQL Search" (von redgate) installieren. Ich verwende es, um nach Schlüsselwörtern zu suchen, von denen ich weiß, dass sie im SP enthalten sind, und es gibt eine Vorschau des SP-Codes mit den hervorgehobenen Schlüsselwörtern zurück.
genial! Ich kopiere diesen Code dann in meinen eigenen SP oder sehe ihn mir an
quelle