1

我想使用@sqlQuery 变量创建一个动态命令。我还声明了一个游标(例如:@myCursor)。如何“设置 @myCursor = CURSOR FOR @sqlQuery”。我刚才提到的语法不起作用。我正在使用 SQL 2000。

4

2 回答 2

2

你应该看看动态 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 回答