sql 저장 프로시저 상세 설명

1.매개 변수 가 없 는 저장 과정
2.입력 매개 변 수 를 가 진 저장 과정
3.입력 과 출력 매개 변 수 를 가 진 저장 과정
4.반환 값 을 가 진 저장 과정
매개 변수 없 는 저장 과정
예 를 들 어 다음 저장 과정 은 Employes 표 의 모든 직원 의 기록 을 되 돌려 줍 니 다.
저장 프로시저 코드:

USE TSQLFundamentals2008;
GO

IF OBJECT_ID('usp_ProcDemoNoParam','P') IS NOT NULL DROP PROC usp_ProcDemoNoParam;
GO
-- 1,    
CREATE PROC usp_ProcDemoNoParam
AS
BEGIN
  SELECT * FROM HR.Employees;
END
GO

호출 코드:

USE TSQLFundamentals2008;
GO

-- 1,           
EXEC usp_ProcDemoNoParam;

결과:

총 9 개의 기록 을 되 돌려 받 은 것 을 볼 수 있다.
입력 매개 변수 가 있 는 저장 과정
예 를 들 어 이 저장 과정 은 인자@empid 를 입력 한 후 이 직원 의 정 보 를 되 돌려 줍 니 다.
저장 프로시저 코드 생 성:

IF OBJECT_ID('usp_ProcDemoWithInputParam','P') IS NOT NULL DROP PROC usp_ProcDemoWithInputParam;
GO
-- 2,     
CREATE PROC usp_ProcDemoWithInputParam
  @empid AS INT
AS
BEGIN
  SELECT * FROM HR.Employees
  WHERE empid= @empid;
END
GO

호출:

-- 2,           
EXEC usp_ProcDemoWithInputParam @empid=5;
결과:

입 출력 매개 변 수 를 가 진 저장 과정
예 를 들 어 다음 저장 과정 은@empid 즉 직원 ID 를 입력 매개 변수 로 받 아들 인 다음 에 해당 직원 의 정 보 를 되 돌려 주 고 코드 가 영향 을 받 은 줄 수 를 출력 매개 변수 로 되 돌려 줍 니 다.
저장 프로시저 코드 생 성:

IF OBJECT_ID('usp_ProcDemoWithInputOutputParam','P') IS NOT NULL DROP PROC usp_ProcDemoWithInputOutputParam;
GO
-- 3,        
CREATE PROC usp_ProcDemoWithInputOutputParam
  @empid AS INT,
  @NumRowsAffected AS INT OUTPUT
AS
BEGIN
  SELECT * FROM HR.Employees
  WHERE empid= @empid;
  
  SET @NumRowsAffected= @@ROWCOUNT; --   ,     select  
END
GO

호출:

-- 3,               
DECLARE @nums AS INT;
EXEC usp_ProcDemoWithInputOutputParam @empid=5,@NumRowsAffected= @nums OUTPUT;
SELECT @nums AS nums;
결과:

반환 값 이 있 는 저장 프로시저
예 를 들 어 다음 저장 과정 은@empid 즉 직원 ID 를 입력 매개 변수 로 받 아들 인 다음 에 직원 표 에 해당 직원 의 기록 이 있 는 지 판단 하고 존재 하면 1 로 돌아 가 며 그렇지 않 으 면 0 으로 돌아 갑 니 다.
저장 프로시저 코드 생 성:

IF OBJECT_ID('usp_ProcDemoWithReturnValue','P') IS NOT NULL DROP PROC usp_ProcDemoWithReturnValue;
GO
-- 4,    
CREATE PROC usp_ProcDemoWithReturnValue
  @empid AS INT
AS
BEGIN
  IF EXISTS (SELECT * FROM HR.Employees WHERE empid=@empid)
    RETURN 1
  ELSE
    RETURN 0; --          ,        
END
GO

호출:

-- 4,           
DECLARE @status AS INT=0; --     0
EXEC @status= dbo.usp_ProcDemoWithReturnValue @empid = 5 -- int
SELECT @status AS thestatus;
결과:

좋은 웹페이지 즐겨찾기