2016-11-29 66 views
0

我知道如何在SQL Server2008中執行存儲過程,但我無法執行包含遊標的存儲過程。如何在SQL Server 2008中執行具有遊標的過程?

我的代碼:

BEGIN TRANSACTION 
GO 

DROP PROCEDURE SampleProcedure 
GO 

CREATE PROCEDURE SampleProcedure 
AS 
    DECLARE @FirstName varchar(64) 

    DECLARE c1 CURSOR READ_ONLY 
    FOR 
     SELECT FIRST_NAME 
     FROM EMPLOYEE 

    OPEN c1 

    FETCH NEXT FROM c1 INTO @FirstName 

    WHILE @@FETCH_STATUS = 0 
    BEGIN 
     PRINT @FirstName 

     FETCH NEXT FROM c1 INTO @FirstName 
    END 

    CLOSE c1 
    DEALLOCATE c1 

    COMMIT TRANSACTION 

我所看到的執行與光標在Oracle中的程序,但在SQL Server中找不到。請告訴我如何執行包含遊標的存儲過程。

---謝謝

+2

有沒有在如何執行存儲過程沒有區別 - 它是否包含光標或不.... - 只是'EXEC SampleProcedure',或者如果你喜歡 –

回答

1

執行SP。

EXEC SampleProcedure 
+0

巴拉吉感謝您的回覆使用'EXEC sp_executesql' 。正如你和@marc_s建議命令「EXEC SampleProcedure」正在工作,但我沒有得到預期的輸出。我期望EMPLOYEE的所有FirstNames,但我得到了輸出「命令(s)成功完成」。你能告訴我我在哪裏做錯了嗎? –

相關問題