2016-11-29 11 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をすべて期待していましたが、「Command(s)completed successfully」という出力が得られました。どこが間違っているのか教えていただけますか? –

関連する問題