2016-11-29 68 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)成功完成”。你能告诉我我在哪里做错了吗? –

相关问题