2010-07-15 1 views
4

У меня есть длинный хранимую процедуру, в которой я хотел бы сделать что-то вроде следующего:T-SQL - возвращает пользовательское сообщение об ошибке и конечный запрос

IF @SubPageDirectory IS NULL 
BEGIN 
    RAISERROR('@SubPageDirectory cannot be NULL', 10, 1) 
    EXIT STORED PROCEDURE 
END 

В принципе я желаю, чтобы проверить, является ли моя переменная NULL, и если это так, верните сообщение об ошибке в мое веб-приложение .NET и прекратите выполнение запроса на этом этапе. Как я могу это достичь?

ответ

12
IF @SubPageDirectory IS NULL 
BEGIN 
    RAISERROR('@SubPageDirectory cannot be NULL', 16, 1) --change to > 10 
    RETURN --exit now 
END 
+0

Вам нужно возвращение, я думал, что уйти от него будет. – DaveShaw

+1

@DaveShaw: нет, он выполняет выполнение – gbn

+0

RETURN, кажется, возвращается без каких-либо ошибок, так как в нем он не покажет пользователю ошибки, он будет просто продолжен. RAISERROR сам по себе продолжает чтение хранимой процедуры, так как он вызывает дополнительную ошибку. – Curt

Смежные вопросы