1

@sqlQuery 変数を使用して動的コマンドを作成したいと考えています。カーソルも宣言しました (例: @myCursor)。「@myCursor = CURSOR FOR @sqlQuery」を設定するにはどうすればよいですか。先ほど指摘した構文は機能しません。SQL 2000 を使用しています。

4

2 に答える 2

2

The Curse and Blessings of Dynamic SQL をご覧ください。

于 2011-05-02T14:36:41.587 に答える
1

を使用して実行できますsp_executesql。必ず動的 SQL 内でカーソルをオープンしてください。

CREATE PROCEDURE OpenCursor (@query nvarchar(max), @cur cursor VARYING OUTPUT)
AS
    DECLARE @sql nvarchar(max)
    SET @sql = N'SET @cur = CURSOR STATIC FOR ' + @query + '; OPEN @cur'
    EXEC sp_executesql @sql, N'@cur cursor OUTPUT', @cur OUTPUT
GO

DECLARE @cur cursor
EXEC OpenCursor 'SELECT * FROM sysobjects', @cur OUTPUT
FETCH NEXT FROM @cur
于 2011-05-02T15:09:53.550 に答える