Last active
March 10, 2019 12:19
-
-
Save ezhov-da/f981bc15c3da34b983f6599889c074cb to your computer and use it in GitHub Desktop.
sql mssql логирование
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[code:]sql[:code]use ____________________________________ | |
go | |
-- execute OTZ.dbo.prc_refresh_T_RC_WHS_LNK | |
create ____________________________________ as | |
begin | |
------------------------------------------------------------------------ | |
--> автор : ____________________________________ | |
--> дата создания : ____________________________________ | |
--> описание : ____________________________________ | |
------------------------------------------------------------------------ | |
--ЛОГИРОВАНИЕ----------------------------------------------------------- | |
DECLARE @TEXT_LOG VARCHAR(max) --переменная, которая будет содержать текст описания | |
,@COUNTER_STEP INT = 0 --счетчик шагов | |
,@USERNAME_NOW varchar(50) = '_______________________' --имя пользователя | |
,@PRC_NAME_NOW varchar(100) = '_______________________' --имя процедуры | |
------------------------------------------------------------------------ | |
begin try | |
begin tran | |
--ЛОГИРОВАНИЕ----------------------------------------------------------- | |
/* | |
* очень важен порядок присвоения переменных, | |
* так как @@ROWCOUNT в обратном порядке работает некорректно | |
*/ | |
set @TEXT_LOG = '____________________________________' | |
set @COUNTER_STEP = @COUNTER_STEP + 1 | |
exec OTZ.dbo.prc_E_log | |
@USERNAME = @USERNAME_NOW | |
,@PRC_NAME = @PRC_NAME_NOW | |
,@RUN_ID = 1 | |
,@STEP = @COUNTER_STEP | |
,@COMMENT = @TEXT_LOG | |
,@LEVEL = 0 | |
,@PARENT = 0 | |
------------------------------------------------------------------------ | |
| К | |
| О | |
| Д | |
| | |
| Д | |
| Л | |
| Я | |
| | |
| В | |
| С | |
| Т | |
| А | |
| В | |
| К | |
| И | |
--ЛОГИРОВАНИЕ----------------------------------------------------------- | |
/* | |
* очень важен порядок присвоения переменных, | |
* так как @@ROWCOUNT в обратном порядке работает некорректно | |
*/ | |
set @TEXT_LOG = '____________________________________' + cast(@@ROWCOUNT as varchar(10)) | |
set @COUNTER_STEP = @COUNTER_STEP + 1 | |
exec OTZ.dbo.prc_E_log | |
@USERNAME = @USERNAME_NOW | |
,@PRC_NAME = @PRC_NAME_NOW | |
,@RUN_ID = 1 | |
,@STEP = @COUNTER_STEP | |
,@COMMENT = @TEXT_LOG | |
,@LEVEL = 0 | |
,@PARENT = 0 | |
------------------------------------------------------------------------ | |
commit tran | |
end try | |
begin catch | |
rollback tran | |
SET @TEXT_LOG = concat | |
( | |
'<error>' | |
,char(10) | |
,'<numError>' | |
,'номер ошибки: ' | |
,CAST(ERROR_NUMBER() as varchar(20)) | |
,'</numError>' | |
,char(10) | |
,'<severity>' | |
,'степень серьезности ошибки: ' | |
,CAST(ERROR_SEVERITY() as varchar(20)) | |
,'</severity>' | |
,char(10) | |
,'<code>' | |
,'код состояния ошибки: ' | |
,CAST(ERROR_STATE() as varchar(20)) | |
,'</code>' | |
,char(10) | |
,'<nameProc>' | |
,'имя хранимой процедуры: ' | |
,CAST(ERROR_PROCEDURE() as varchar(300)) | |
,'</nameProc>' | |
,char(10) | |
,'<numRow>' | |
,'номер строки, которая вызвала ошибку: ' | |
,CAST(ERROR_LINE() as varchar(20)) | |
,'</numRow>' | |
,char(10) | |
,'<fullText>' | |
,'полный текст сообщения об ошибке: ' | |
,CAST(ERROR_MESSAGE() as varchar(max)) | |
,'</fullText>' | |
,char(10) | |
,'</error>' | |
) | |
--ЛОГИРОВАНИЕ----------------------------------------------------------- | |
exec OTZ.dbo.prc_E_log | |
@USERNAME = @USERNAME_NOW | |
,@PRC_NAME = @PRC_NAME_NOW | |
,@RUN_ID = 1 | |
,@STEP = -1 --в случае ошибки, чтоб можно было легко найти | |
,@COMMENT = @TEXT_LOG | |
,@LEVEL = 0 | |
,@PARENT = 0 | |
------------------------------------------------------------------------ | |
end catch | |
end | |
end | |
[/code] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment