Здравствуйте, chabster, Вы писали:
C>...
C> IF (@OrderID IS NULL)
C> BEGIN
C> RAISERROR(N'%s: Invalid parameters supplied, @OrderID IS NULL', 11, 1, @ProcName)
C> RETURN(-100)
C> END
...
Достигается NOT NULL в таблице на соответсвующие поля.
C> SELECT @OrderID = [OrderID] FROM [dbo].[Order] WITH (HOLDLOCK) WHERE ([OrderID] = @OrderID)
C> IF (@@ROWCOUNT = 0)
C> BEGIN
C> ROLLBACK TRAN @TranName
C> RAISERROR(N'%s: БД не містить замовлення з ідентифіктором @OrderID = %d', 11, 1, @ProcName, @OrderID)
C> RETURN(-1000)
C> END
...
Достигается Foreign key в таблице, и далее можно парсить ошибки сервера, если нужны осмысленные сообщения
C>
таким образом текст процедуры сокращается раза в два...