사용할 수있는 세 가지 방법이 있습니다. RETURN 값, OUTPUT 매개 변수 및 결과 세트
또한 패턴을 사용하는지 확인하십시오. SELECT @Variable=column FROM table ...
쿼리에서 반환 된 여러 행이있는 경우 @Variable에는 쿼리에서 반환 된 마지막 행의 값만 포함됩니다.
쿼리가 적어도 이름을 지정한 방식에 따라 int 필드를 반환하므로 RETURN VALUE . 이 트릭을 사용할 수 있습니다.
CREATE PROCEDURE GetMyInt
( @Param int)
AS
DECLARE @ReturnValue int
SELECT @ReturnValue=MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN @ReturnValue
GO
이제 다음과 같이 절차를 호출하십시오.
DECLARE @SelectedValue int
,@Param int
SET @Param=1
EXEC @SelectedValue = GetMyInt @Param
PRINT @SelectedValue
RETURN은 단일 int 값만 반환 할 수 있고 null은 0으로 변환되므로 INT에서만 작동합니다.
OUTPUT PARAMETER
출력 매개 변수를 사용할 수 있습니다.
CREATE PROCEDURE GetMyInt
( @Param int
,@OutValue int OUTPUT)
AS
SELECT @OutValue=MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN 0
GO
이제 다음과 같이 절차를 호출하십시오.
DECLARE @SelectedValue int
,@Param int
SET @Param=1
EXEC GetMyInt @Param, @SelectedValue OUTPUT
PRINT @SelectedValue
출력 매개 변수는 하나의 값만 반환 할 수 있지만 모든 데이터 유형이 될 수 있습니다.
결과 집합에 대한 RESULT SET 절차는 다음과 같습니다.
CREATE PROCEDURE GetMyInt
( @Param int)
AS
SELECT MyIntField FROM MyTable WHERE MyPrimaryKeyField = @Param
RETURN 0
GO
다음과 같이 사용하십시오.
DECLARE @ResultSet table (SelectedValue int)
DECLARE @Param int
SET @Param=1
INSERT INTO @ResultSet (SelectedValue)
EXEC GetMyInt @Param
SELECT * FROM @ResultSet
결과 집합에는 모든 데이터 유형의 많은 행과 열이있을 수 있습니다.