нужно обработать ошибку при обращении, к переменным вне области видимости. Забавно, но при такой ошибке в catch он не заходит
Код | Declare @NumberOfTitles INT, @BestPilotSurname VARCHAR(20),@BestPilotName VARCHAR(20) ;
SELECT @BestPilotSurname=Surname,@BestPilotName =Name,@NumberOfTitles=Titles FROM ( SELECT TOP (1) IDPilot, Surname, Name, MAX(ChampionshipTitles) AS Titles, MAX(Points) AS BestPoints FROM Pilots GROUP BY IDPilot, Surname, Name, Points ORDER BY Titles DESC, BestPoints DESC) as BestPilot SELECT @BestPilotSurname,@BestPilotName,@NumberOfTitles;
GO
BEGIN TRY SELECT @BestPilotSurname,@BestPilotName,@NumberOfTitles;
END TRY BEGIN CATCH PRINT 'Переменные находятся вне области видимости'; END CATCH;
|
в то время как такая модификация обрабатывается:
Код |
GO
BEGIN TRY --SELECT @BestPilotSurname,@BestPilotName,@NumberOfTitles; SELECT 1/0;
END TRY BEGIN CATCH PRINT 'Переменные находятся вне области видимости'; END CATCH;
|
Неужели есть уровни чувствительности к ошибкам? Помогите разобраться |