2016-03-24 27 views
0

Seçme sorgusunun sonucunu imleci kullanarak saklı bir prosedüre kullanmak istiyorum ancak işe yaramıyor.SELECT ifadesi sql'nin sonuçları arasında nasıl geçiş yapabilirim ve saklı yordam için sonuçları nasıl kullanırım?

DECLARE @NumberPhone varchar(50) 
DECLARE CUR CURSOR STATIC FOR 

SELECT MobilePhone 
FROM info_client 

OPEN CUR 
FETCH NEXT FROM CUR INTO @NumberPhone 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    DECLARE @return_value int, @idCli int, @sCode varchar(2) 

    EXEC @return_value = StoredP_Test 
      @sLignePhone = @NumberPhone, 
      @sIMEI ='00000000000000000', 
      @idCli = @idCli OUTPUT, 
      @sCode = @sCode OUTPUT 

    SELECT @idCli as N'@idCli', 
      @sCode as N'@sCode' 

    FETCH NEXT FROM CUR INTO @NumberPhone 

    SELECT 'Return Value' = @return_value 
END 

CLOSE CUR 
DEALLOCATE CUR 

Bu kod seçme sorgusu hattı sayısı gibi aynı sonucu yinelenen:

İşte benim kodudur.

+0

EXEC'e hangi prosedürü deniyorsunuz? İsim eksik mi? – mxix

+0

İlk turda '@ NumberPhone' kullanıyorsunuz, ancak geri kalanı için' @ sLigneAssValue' –

+0

Belki bir imlecine ihtiyacınız yok mu? Bu prosedürün bir imleci ne yaptığına bağlı olarak bu süreci yavaşlatmanın bir yolu olabilir. –

cevap

1

Kodunuz bir başlangıç ​​bir sonraki

FETCH NEXT FROM CUR INTO @sLigneAssValue 

Eğer @NumberPhone değişkenine sonraki getirmek istemiyor muydun döngü içine getirme etti

FETCH NEXT FROM CUR INTO @NumberPhone 

Kişisel kod getirme oldu?

@NumberPhone değişkeni hiçbir zaman değişmeyecektir.

+0

Kodumu gönderdiğimde hata yaptım çünkü neden varvardım ve aynı değil ama kodumu düzenledim ve ben de bu işlemi yaptım. Sorun şu: uygulanan prosedürün sonucu her zaman aynı sonucudur, çünkü seçilen ilk satırın telefon numarasına işlemden geçmiş ve bir sonraki satıra geçmemiştir vb. – Sorinzo