이번에는 상품 이름으로 상품을 제거하는 저장 프로시저를 만들어 봅시다. 상품 테이블의 PID는 판매 테이블의 PID와 관계가 있기 때문에 상품 테이블에 상품 데이터를 제거하기 위해서는 판매 테이블에서 해당 상품의 PID인 판매 데이터를 먼저 제거해야 합니다. 이에 PID를 인자로 받아 판매 데이터를 제거하는 저장 프로시저를 먼저 작성합시다.
ALTER PROCEDURE dbo.RemoveSaleByPID ( @PID int ) AS delete from Sale where PID = @PID RETURN
상품 제거 저장 프로시저는 입력 인자로 상품 이름을 받는데 판매 테이블에서 판매 데이터를 제거하기 위해서는 PID를 알아야 하므로 앞에서 만든 상품 이름으로 PID를 구하는 FindPIDByName 저장 프로시저를 사용해야겠죠.
ALTER PROCEDURE dbo.RemoveProduct ( @PNAME varchar(50), @Result int OUTPUT ) AS declare @PID int Exec FindPIDByName @PNAME,@PID OUTPUT if @PID = -1 begin set @Result = 0 end else begin Exec RemoveSaleByPID @PID delete from Product where PID = @PID set @Result = 1 end RETURN
다음은 같은 방법으로 고객 이름으로 고객 정보를 제거하는 것입니다.
고객 이름으로 고객 정보를 제거하는 저장 프로시저도 고객 테이블의 고객 정보를 제거하기 전에 판매 테이블에 있는 해당 고객의 CID인 판매 정보를 제거해야 합니다.
ALTER PROCEDURE dbo.RemoveSaleByCID ( @CID int ) AS delete from Sale where CID = @CID RETURN
ALTER PROCEDURE dbo.RemoveCustom ( @CNAME varchar(50), @Result int OUTPUT ) AS declare @CID int Exec FindCIDByName @CNAME,@CID OUTPUT if @CID = -1 begin set @Result = 0 end else begin Exec RemoveSaleByCID @CID delete from Custom where CID = @CID set @Result = 1 end RETURN