【问题标题】:How to execute a procedure having cursor in SQL Server 2008?如何在 SQL Server 2008 中执行具有游标的过程?
【发布时间】:2016-11-29 06:29:04
【问题描述】:

我知道如何在 SQL Server2008 中执行存储过程,但在执行包含游标的存储过程时却一无所知。

我的代码:

 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 中找不到。请告诉我如何执行包含游标的存储过程。

---谢谢

【问题讨论】:

  • 存储过程的执行方式没有区别——它是否包含游标......——只需EXEC SampleProcedure,或者如果您愿意,可以使用EXEC sp_executesql

标签: sql-server-2008 stored-procedures cursor


【解决方案1】:

执行 SP。

EXEC SampleProcedure

【讨论】:

  • 感谢巴拉吉的回复。正如您和@marc_s 建议的那样,“EXEC SampleProcedure”命令正在运行,但我没有得到预期的输出。我期待 EMPLOYEE 的所有名字,但我得到了输出“命令已成功完成”。你能告诉我我哪里做错了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多