内部でクエリを動的に作成する必要がありますcursor
DECLARE @id VARCHAR(10)
declare @loc varchar(25)
set @loc = '/MainItem/SubItem';
declare @query varchar(max)
DECLARE myCursor CURSOR LOCAL FAST_FORWARD FOR
SELECT * FROM @tempcolumnname
OPEN myCursor
FETCH NEXT FROM myCursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
set @query = 'SELECT * FROM OPENXML(@hdoc, '+@loc+', 3) WITH (code_db_key int)'
exec (@query)
FETCH NEXT FROM myCursor INTO @id
END
しかし、これを実行すると例外がスローされます
メッセージ 137、レベル 15、状態 2、行 1
スカラー変数「@hdoc」を宣言する必要がありますメッセージ 319、レベル 15、状態 1、行 1
キーワード「with」付近の構文が正しくありません。このステートメントが共通テーブル式、xmlnamespaces 句、または変更追跡コンテキスト句である場合、前のステートメント
はセミコロンで終了する必要があります。
しかし、カーソルの外で同じクエリを実行すると、正常に動作します。