Я пишу хранимую процедуру в SQL Server 2008. Проблема в том, что параметр @ErrorMessage out всегда пуст. Похоже, это связано с функцией ERROR_MESSAGE (), потому что, когда я избавляюсь от этого, возвращается другая часть сообщения.
Как я могу получить полное сообщение об ошибке?
-- Log transaction
INSERT INTO Transactions (TxnId, TypeId, [Date], Amount)
VALUES(@TxnId, @TypeId, @TransDate, @Amount)
-- Check for errors
IF @@ERROR <> 0
BEGIN
PRINT 'Starting third error block'
SET @ErrorCode = 202
SELECT @ErrorMessage = 'Err_TxnId_Exists - Error inserting: ' + ERROR_MESSAGE()
PRINT @ErrorCode
PRINT @ErrorMessage
PRINT 'Ending third error block'
RETURN 1
END
Вывод сообщений
Заявление было прекращено.
Начало третьего блока ошибок
202
Окончание третьего блока ошибки
(затронут 1 ряд)
Результаты
- @ ErrorCode = 202
- @ ErrorMessage = null
(затронут 1 ряд)