26. 상품 이름으로 상품 제거 저장 프로시저

이번에는 상품 이름으로 상품을 제거하는 저장 프로시저를 만들어 봅시다. 상품 테이블의 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