as_print позволяет проверять значения при выполнении хранимой процедуры. Его вывод есть на странице /start на панели управления администратора. Создает запись в as_trace с кодом print
exec as_print @str='132'
Не оставляйте print на постоянной основе - иначе это усложняет анализ вывода as_print в будущем. Проверили какие-то значения и убрали из кода.
as_warning фиксирует возможные проблемные ситуации. Это не является полноценной ошибкой, но может давать негативные эффекты (например, к заказу привязано слишком много файлов). Создает запись в as_trace с кодом warning.
exec [as_warning] @str =''[, @place = '', @itemID=0]
as_error - фиксирует ошибку. Если есть SQL исключение - то данные по исключению также будут зафиксированы. Создает запись в as_trace с кодом exception.
exec as_error @str='132'
as_print:
CREATE OR ALTER PROCEDURE [dbo].[as_print]
(
@str as varchar(max)
)
AS
BEGIN
insert into as_trace (code, text, created) values ('print', left(@str, 2048), getdate())
print @str
END
as_warning:
CREATE or ALTER PROCEDURE [dbo].[as_warning]
(
@str as varchar(max),
@place as nvarchar(max) = '',
@itemID int = 0
)
AS
BEGIN
insert into as_trace (code, header, text, itemID, created) values ('warning', @place, left(@str, 2048), @itemID, getdate())
print @str
END
as_error:
CREATE OR ALTER procedure [dbo].[as_error]
@str nvarchar(max)
as
begin
declare @s nvarchar(max) = isnull(@str , '') + ' '
declare @errorMsg nvarchar(max) = ERROR_MESSAGE()
if(isnull(@errorMsg, '')<>'')begin
set @s += 'Msg: ' + @errorMsg +
', Proc: '+ isnull(ERROR_PROCEDURE() , 'n/a') +
', Line: '+ isnull(try_cast(ERROR_LINE() as nvarchar) , 'n/a') +
', ErrorNumber: '+ isnull(try_cast(ERROR_NUMBER() as nvarchar) , 'n/a')
end
print @s
declare @t table(id int)
insert into @t
exec as_trace_warn
@code ='exception',
@header = @s,
@itemID =0,
@text ='',
@username = ''