Автор В к задал вопрос в разделе Другие языки и технологии
SQL хранимая процедура). и получил лучший ответ
Ответ от Kelavric kelavric[гуру]
В условии задачи сказано - сделать процедуру, пытающуюся удалить какого-то клиента, и возвращающую какой-то признак успеха или неуспеха. Так что, очевидно, процедура должна иметь два параметра: идентификатор клиента (@CustomerID) и результат выполнения (@Result).
Эта процедура может выглядеть примерно так:
CREATE PROCEDURE dbo.DeleteCustomer (
@CustomerID int,
@Result int OUTPUT
)
AS
BEGIN
-- проверяем, нет ли заказов
IF EXISTS(SELECT * FROM [ORDER] WHERE IdCust = @CustomerID)
BEGIN
SET @Result = 0
RETURN
END
-- удаляем клиента
DELETE FROM Customer WHERE IdCust = @CustomerID
SET @Result = 1
END
Во всяких разных языках программирования есть свои механизмы для вызова хранимых процедур базы данных, а в каком-нибудь QueryAnalyzer-е или где вы там отлаживаете запросы, эту процедуру для проверки можно вызвать так:
DECLARE @Result integer
EXEC dbo.DeleteCustomer 11, @Result OUTPUT
PRINT 'результат выполнения: ' + cast(@Result as varchar(256))
И всё-таки, наверно, в заголовке лучше указывать диалект, а то у каждой СУБД свои заморочки...