カーソルに変数を含むSQLServerでOpenQueryを返すにはどうすればよいですか?
DECLARE curMyCursor CURSOR FOR
EXEC('SELECT *
FROM OPENQUERY(SYBASE,
''SELECT * FROM MyTable WHERE MyPrimaryKey=''''' + @Variable + ''''''')')
OPEN @ResultCrsr
カーソルに変数を含むSQLServerでOpenQueryを返すにはどうすればよいですか?
DECLARE curMyCursor CURSOR FOR
EXEC('SELECT *
FROM OPENQUERY(SYBASE,
''SELECT * FROM MyTable WHERE MyPrimaryKey=''''' + @Variable + ''''''')')
OPEN @ResultCrsr
あなたはそうしない。開いているクエリの結果を一時テーブルに入れ、その上でカーソルを開きます。
しかし、なぜカーソルが必要なのですか?? それなしで物事を行うためのより良い方法があると確信しています。
に変数を渡すことができないため、TSQL を使用する必要がありますOPENQUERY
。
DECLARE sqlCMD VARCHAR(500);
SET @sqlCMD =
'SELECT * FROM OPENQUERY(PASON, ''SELECT * FROM MyTable WHERE MyPrimaryKey=''''' + @Variable + ''''''')')
EXEC (@sqlCMD);