2012-02-05 2 views
0

나는 지금sql에서 전체 레코드 반환 저장 프로 시저를 아는 방법?

Select * from Order where CompanyID = 1; 

처럼, 내가 저장 프로 시저의 이름을 포함하는 테이블이 보이는 usp_getTotalOrder라는 저장 프로 시저가 있습니다.

내 BLL에 저장 프로 시저 이름이 있습니다. 나는 하나 개의 매개 변수 StoredProcedureName를 포함하는 함수를 만들고 싶어

Declare @str varchar(50) 
Set @str='GetOrders'; // Stored Procedure Name 
Exec @str 

처럼 총 행의 수를 반환하지만 내가 함수의 이름과 저장 프로 시저에서 얻을 할 총 행 수를 반환하지 않습니다 .

모든 IDEA ??? 제발 도와주세요 .....

+0

저장 프로 시저 반환 레코드를 계산하고 싶습니다. 구문에는 문제가 없습니다. –

답변

5

하기 같은 것을 사용할 수 있습니다 @@ROWCOUNT

http://technet.microsoft.com/en-us/library/ms187316.aspx

에서보세요 . 물론 출력 매개 변수를 SP에 추가하고 SP 내부에 COUNT (*)로 설정해야합니다.

DECLARE @o_count INT 

EXEC GetOrder @o_count = @count OUT 
+0

완벽하게 작동합니다. – ErikE

+0

저장 프로 시저 매개 변수로 어떻게 이것을합니까? – Ally

+0

@ 앨리 나는 당신이하려는 것을 따르지 않을 것입니다. 저장 프로 시저에서 출력 매개 변수로 행 수를 반환하려고합니까? 그렇다면 매개 변수의 이름이'@ rowCount'라고 가정 해 봅시다. 그런 다음 저장된 proc의 끝에서'SELECT @rowCount = @@ ROWCOUNT'를 수행하십시오 – csm8118

1

sproc에서 결과 집합의 행 수를 계산 하시겠습니까?

INSERT INTO #Orders 
Exec @str 

SELECT COUNT(*) 
FROM #Orders 

또는 대신 임시 테이블의 테이블 변수를 사용할 수 있습니다 이 경우 당신은 할 수 있습니다. 당신은 당신의 SP에서 출력 매개 변수 또는 반환 값으로 행의 수를 반환 할 수 있습니다

Declare @str varchar(50) 
Set @str='GetOrders'; // Stored Procedure Name 
Exec @str 
SELECT @@ROWCOUNT 
1

:

+0

rowcount를 기본적으로 무의미한 행 외에 출력 매개 변수로 만드는 proc - kind에 의해 반환 된 행 집합의 모든 행을 읽을 때까지는 출력 매개 변수를 사용할 수 없습니다. –

+0

SP의 쿼리에서 행 수를 계산할 수 있습니다. – pistipanko

+0

그리고 행 집합을 반환하거나 그 개수를 출력 변수에 넣으면 AFTER가 모든 행을 소비 할 때까지 카운트 출력 변수에 도달 할 수 없으므로 종종 무의미 해집니다. http://msdn.microsoft.com/en-us/library/ms971497.aspx#gazoutas_topic6 해결 방법은 출력 변수가 아닌 첫 번째 행 집합의 개수를 반환하는 것입니다. –

관련 문제