2009-12-04 2 views
1

이것은 사소한 것처럼 보이지만 내 SQL은 최고 수준이 아니며 알아낼 수 없습니다. 난 그냥 저장 프로 시저에서 반환 된 스칼라를 선택하고 싶습니다. 기본적으로 다음과 같습니다.저장 프로 시저의 반환 값은 어떻게 선택합니까?

select dbo.sProcedure @param 

하지만 오류가 발생합니다. 프로 시저 내에서 결과 집합을 반환하는 것은 실제로 옵션이 아닙니다. 이 작업을 수행 할 수 있습니까? 아니면 일부 코드를 다시 작성해야합니까?

답변

6

뭔가를 사용해야하지만,

DECLARE @SomeReturnValue INT 
EXEC @SomeReturnValue = SomeProc 
SELECT @SomeReturnValue 
+1

SQL 쿼리로 작동하지만 C#과 같은 프로그래밍 환경에있는 경우 반환 값을 얻는 더 좋은 방법이 있음에 유의하십시오. – Thanatos

+0

Yeap. 이 질문에는 C# 태그가 없습니다! – RichardOD

+0

흥미 롭습니다 - 실제로이 용도로 C#을 사용하고 있으며이 솔루션은 나에게 잘 작동합니다 (이 텍스트로 DbCommand를 만들고 executeScalar를 호출). 그러나 더 좋은 방법은 무엇입니까? –

1

당신은 SP에게 당신이 필요한 반환 값을 저장할 수있는 출력 매개 변수를 전달, 또는 스칼라 함수이 같은

0

@RichardOD 올바른 구문이 암시 적으로 select 문에서 사용할 수 없습니다. select 문에서 사용해야하는 경우 저장 프로 시저 대신 함수를 사용하십시오.