2009-02-19 23 views
11

Kimlik, Ad, Açıklamaları döndüren bir saklı yordamım var ve giriş parametresi almıyor. Ancak, kaç sonuç aldığımla ilgileniyorum. Saklı yordam sonuçlarını sayma

bu işi gibi bir şey beklenen:

SELECT COUNT(*) FROM EXEC MyStoredProcedure 

Ama SqlServer Managment Studio aşağıdaki hatayı alıyorum: anahtar kelime 'EXEC' yakınında yanlış sözdizimi. Bana biraz kod örneği gösterir misiniz? Bunu nasıl yapabilirim?

cevap

18

Bu çalışmaz. Ben önerebilir:

exec MyStoredProcedure 
select @@rowcount 

Alternatif bir çıkış parametresi saklı proc mantığı koymak ve depolanan proc sayısını döndürmek gerekir

+0

ayarlamış ne olur? bu hala işe yarayacak mı? – user29964

+1

Üzgünüm, benim hatam: http://msdn.microsoft.com/en-us/library/ms189837.aspx. @@ ROWCOUNT çalışmaya devam ediyor – user29964

+0

Sadece birkaç saat kurtardın. Teşekkürler! –

-3

Sizin için sayılan yeni bir saklı yordam yazınız.

3

olarak sayar geri dönebilirler. Bunu, sorgudan hemen sonra @@ ROWCOUNT değişkenini kullanarak yaparsınız. Bu, en azından MS SQL Servet'te çalışırdı.

CREATE PROC MyPROC 
AS 
DECLARE @MyCount int 

... 

SELECT * FROM MyTable WHERE ... 

SELECT @MyCount = @@ROWCOUNT 

... 

return @MyCOunt 

çağrılması kod:

depolanan Proc üzerinde etmek NOCOUNT

DECLARE @MyCount int 

EXEC @MyCount = EXEC MyProc 
+0

Tamam, bu işe yarayacak, ancak SELECT COUNT (*) tablosunu da kullanabilirsiniz. Bence hala verilerini istiyor ... eğer COUNT kullanmamalıysa ... – user29964

İlgili konular