我創建了一個表,可以記錄調用SP的頻率和人數的一些細節。大量更改存儲過程以包含新行代碼
我已經能夠添加一些腳本到存儲過程,每次調用它時都會觸發。
但是,我們有很多我們想要監視的存儲過程,他們都需要添加這一行代碼。
有沒有辦法將這一行代碼標記到每個存儲過程的末尾,而無需逐一更新每一個?
感謝
我創建了一個表,可以記錄調用SP的頻率和人數的一些細節。大量更改存儲過程以包含新行代碼
我已經能夠添加一些腳本到存儲過程,每次調用它時都會觸發。
但是,我們有很多我們想要監視的存儲過程,他們都需要添加這一行代碼。
有沒有辦法將這一行代碼標記到每個存儲過程的末尾,而無需逐一更新每一個?
感謝
如何使用類似下面的內容生成新的ALTER PROCEDURE
行?
select REPLACE(ROUTINE_DEFINITION, 'CREATE PROCEDURE', 'ALTER PROCEUDRE')
+ '**YOUR NEW LINE**;' as 'Def'
from INFORMATION_SCHEMA.ROUTINES
where ROUTINE_TYPE = 'PROCEDURE'
一個簡單的例子是在這裏:
create procedure Hello
as
print 'Hello';
GO
select REPLACE(ROUTINE_DEFINITION, 'CREATE PROCEDURE', 'ALTER PROCEDURE') + ' print ''World'';' as 'Def'
from INFORMATION_SCHEMA.ROUTINES
where ROUTINE_NAME = 'Hello'
ALTER PROCEDURE Hello
as
print 'Hello';
print 'World';
exec Hello
有沒有內置的方式做到這一點。您可以將所有存儲過程導出爲文本,然後使用C#生成一個工具,例如添加您的行,但這不是您要求的「純SQL」。
我不這麼認爲,不要失去你的時間要求,並就去做...:d – jazzytomato