Gespeicherte T-SQL-Prozedur - Erkennen, ob ein Parameter als OUTPUT angegeben wurde

8

Betrachten Sie das folgende T-SQL-Code-Snippet:

%Vor%

Die Ergebnismenge ist:

%Vor%

Wie man sehen kann, ist @b nicht quadriert, b / c wurde nicht als Ausgabeparameter übergeben (kein OUTPUT Qualifier bei der Übergabe des Parameters).

Ich würde gerne wissen, ob es eine Möglichkeit gibt, innerhalb des Körpers der gespeicherten Prozedur (dbo.SquareNum body in diesem Fall) nachzusehen, ob ein Parameter tatsächlich als OUTPUT -Parameter übergeben wurde?

    
M. Rashid 18.04.2016, 10:38
quelle

5 Antworten

1
%Vor%     
The beginner 01.09.2017 13:00
quelle
0

Sie können dies durch Abfragen an sys-Ansichten tun:

%Vor%

oder überprüfen Sie Management Studio im Datenbankbaum: [Datenbank] - & gt; Programmierbarkeit - & gt; Gespeicherte Prozeduren - & gt; [Verfahren] - & gt; Parameter

    
Piotr Lasota 18.04.2016 10:50
quelle
0

Vielleicht irre ich mich, aber ich glaube nicht, dass es möglich ist. OUTPUT ist Teil der Definition der gespeicherten Prozedur, so dass Sie wissen sollten, ob ein Parameter OUTPUT ist oder nicht. Es gibt keine Möglichkeit, es dynamisch zu setzen, also denke ich, es ist sinnlos, nach Code zu bestimmen, wenn ein Parameter ausgegeben wird oder nicht, weil Sie es bereits kennen.

Wenn Sie versuchen, einen dynamischen Code zu schreiben, sollte Piotr Lasotas Antwort Sie dazu bringen, den richtigen Weg zu erkennen, wann ein Parameter Output ist.

    
Frederico Almeida 12.07.2016 15:34
quelle
0

Verwenden Sie die folgende Abfrage, um den Namen aller Parameter abzurufen und zu überprüfen, ob es sich um einen Ausgabeparameter :::

handelt %Vor%     
PrinceKayastha 12.06.2017 08:57
quelle
-1

um den Körper der gespeicherten Prozedur anzuzeigen

exec sp_helptext ''

    
user8561960 05.09.2017 07:15
quelle