यह करने के लिए (अफसोस) कोई अच्छा स्वचालित तरीका नहीं है। तो यह वास्तव में इस पर निर्भर करता है कि ऐसा करने में सक्षम होने के लिए आप अपनी procs लिखने के लिए तैयार हैं (पुनः)।
यदि आपके पास लॉगिंग तंत्र है, तो आप लॉग को पढ़ने और काम करने में सक्षम हो सकते हैं जो आपको बुलाता है।
उदाहरण के लिए, यदि आप एक मेज पर डालने, उदाहरण के लिए द्वारा प्रवेश को लागू करता है, तो:
CREATE TABLE Log
(timestamp dattime,
spid int,
procname varchar(255),
message varchar(255))
... text of proc ...
INSERT INTO Log
SELECT get_date(), @@spid, @currentproc, 'doing something'
-- you have to define @currentproc in each proc
-- get name of caller
SELECT @caller = procname
FROM Log
WHERE spid = @@spid
AND timestamp = (SELECT max(timestamp)
FROM Log
WHERE timestamp < get_date()
AND procname != @currentproc)
यह पुनरावर्ती कॉल के लिए काम नहीं होगा, लेकिन शायद किसी को उस ठीक कर सकते हैं?
स्रोत
2008-09-29 11:09:59
आप ओबीजेईपी (@@ प्रोसीआईडी) प्राप्त करके वर्तमान एसपी का नाम जान सकते हैं। – Gman