내 프로젝트에서 처음으로 저장 프로 시저를 사용하려고합니다. 그래서 "if", "else"를 사용하려고하면 구문 오류가 발생합니다.
NewProductId가 "0"또는 null이면 업데이트하고 싶지 않습니다. 그렇지 않으면 내 NewProductId를 업데이트하고 싶습니다.
ALTER PROCEDURE MyProcedured
(
@CustomerId INT,
@CustomerName VARCHAR(80),
@NewProductId INT
)
AS
BEGIN
UPDATE CUSTOMERS
SET
CustomerName =@CustomerName ,
if(@ProductId !=null && @ProductId !=0)
{
ProductId =@NewProductId
}
WHERE CustomerId = @CustomerId
END
두 개의 다른 언어 (C #와 SQL)를 혼합하고있는 것 같습니다. 이를 위해 SQL CASE
문을 사용하는 것이 좋습니다 .
ALTER PROCEDURE MyProcedured
(@CustomerId INT,
@CustomerName VARCHAR(80),
@NewProductId INT)
AS
BEGIN
UPDATE CUSTOMERS
SET CustomerName = @CustomerName,
ProductId = CASE WHEN @ProductId IS NOT NULL AND ProductId <> 0
THEN @NewProductId
ELSE ProductId
END
WHERE CustomerId = @CustomerId
END
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다