T-SQL. Text des Prozeduraufrufs

9

Ich versuche eine generische Protokollierung für meine gespeicherten Prozeduren zu implementieren. Die beste Lösung, die ich gefunden habe, ist DBCC INPUTBUFFER zu verwenden, es gibt den Text des Prozeduraufrufs wie folgt zurück:

%Vor%

Aber es hat eine Einschränkung, die maximale Länge dieses Puffers ist 4000. Ich habe viele Prozeduren, die Tabellenwerte haben und oft enthalten sie & gt; 10000 Datensätze, so kann ich diesen Aufruf mit diesem Ansatz nicht protokollieren.

Gibt es eine Möglichkeit, eine solche Protokollierung ohne manuelles Erstellen von 'Text of procedure call' in jeder Prozedur zu implementieren?

    
Eugene 04.12.2012, 13:25
quelle

2 Antworten

3

Anstatt DBCC INPUTBUFFER @SPID zu verwenden, können Sie versuchen, dm_exec_sql_text

Es hat ein nvarchar(max) -Feld als Text des letzten SP.

Versuchen Sie, eine Funktion für diesen Code zu erstellen (erwarten Sie den Parameter @SPID als int):

%Vor%

Eine andere Art zu verwenden:

%Vor%

Anstelle des Parameters @SPID können Sie @@SPID verwenden, aber dieses Codesegment wird in Ihren letzten SP-Aufruf integriert.

    
András Ottó 04.12.2012 13:59
quelle
0

Was ist mit der Änderungsdatenerfassung?

Ссылка

oder eine OUTPUT-Anweisung

Ссылка

    
user1896587 12.12.2012 04:56
quelle