Как и в случае с регистрацией Рона, мы вызываем процедуру регистрации через все другие хранимые процедуры, чтобы помочь в отслеживании всех вызовов.
Общий BatchId используется повсюду, чтобы разрешить трассировку для определенного пакетного запуска.
Возможно, это не самый эффективный процесс, но он действительно помогает отследить ошибки.
Также довольно просто составлять сводные отчеты по электронной почте для администраторов.
т.
Select * from LogEvent where BatchId = 'blah'
Пример звонка
EXEC LogEvent @Source='MyProc', @Type='Start'
, @Comment='Processed rows',@Value=50, @BatchId = @batchNum
Основной процесс
CREATE PROCEDURE [dbo].[LogEvent]
@Source varchar(50),
@Type varchar(50),
@Comment varchar(400),
@Value decimal = null,
@BatchId varchar(255) = 'BLANK'
AS
IF @BatchId = 'BLANK'
SET @BatchId = NEWID()
INSERT INTO dbo.Log
(Source, EventTime, [Type], Comment, [Value],BatchId)
VALUES
(@Source, GETDATE(), @Type, @Comment, @Value,@BatchId)
В дальнейшем было бы неплохо использовать CLR и посмотреть на вызов чего-то вроде Log4Net через SQL. Поскольку код нашего приложения использует Log4Net, было бы полезно интегрировать сторону SQL процессов в одну инфраструктуру.