Вызов PRINT
из дочерней хранимой процедуры вызывает:
Сообщение 0, Уровень 11, Состояние 0, Строка 0
Произошла серьезная ошибка в текущей команде.Результаты, если таковые имеются, должны быть отброшены.
Как сделать так, чтобы это не выдало ошибку?
Примечание: Не SQL Server 2005
у меня есть хранимая процедура
ALTER PROCEDURE [dbo].[Archive_SessionDeleteOnly] AS
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRANSACTION
EXECUTE ASILIVE.ContosoLive.dbo.Archive_Delete
ROLLBACK TRANSACTION
PRINT 'Fargodeep Mine'
с дочерней хранимой процедурой:
ALTER PROCEDURE [dbo].[Archive_Delete] AS
PRINT 'You no take candle'
Когда я запускаюмоя внешняя процедура Archive_SessionDeleteOnly
все это выполняется до конца, включая PRINT
после вызова моей дочерней хранимой процедуры
You no take candle
Fargodeep Mine
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
Вся операция выполняется до завершения, но я получаюошибка:
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
Если я удаляю print
из «дочерней» хранимой процедуры:
ALTER PROCEDURE [dbo].[Archive_Delete] AS
--PRINT 'You no take candle'
она запускается без ошибок.
ятакже попытался случайным образом добавить NOCOUNT
(поскольку никто не знает, как это исправить в любом случае):
ALTER PROCEDURE [dbo].[Archive_Delete] AS
SET NOCOUNT ON
PRINT 'You no take candle'
это все равно вызывает:
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
ServerA: SQL Server 2000
SELECT @@version
Microsoft SQL Server 2000 - 8.00.818 (Intel X86) May 31 2003 16:08:15 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
СерверB: SQL Server 2000
SELECT @@version
Microsoft SQL Server 2000 - 8.00.2055 (Intel X86) Dec 16 2008 19:46:53 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
В журнале ошибок SQL Server нет ошибок.
Как сделать так, чтобы SQL Server не подавлялся при использовании PRINT
у ребенка хранимая процедура.у меня есть другие случаи, когда я вызываю print из дочерних хранимых процедур без ошибок.
Update Обрезается до минимального воспроизводимого случая.Точный sql показан