0

問題を説明する以下のコードは次のとおりです...

以下の xml 列を含むテーブルを作成し、変数を宣言して初期化し、値を xml 列に挿入します。

create table CustomerInfo
(XmlConfigInfo xml)

declare @StrTemp nvarchar(2000)

set @StrTemp = '<Test></Test>'

insert into [CustomerInfo](XmlConfigInfo) 
values (@StrTemp)

次に、質問の部分が来ます。これを書くと...

update [CustomerInfo] set XmlConfigInfo.modify('insert <Info></Info> into (//Test)[1]')

- 正常に動作します!!!

しかし、これを試してみると、

set @StrTemp = 'insert <Info></Info> into (//Test)[1]'

update [CustomerInfo] set XmlConfigInfo.modify(@StrTemp)

-- 動かない!!!

そしてエラーをスローします

xml データ型メソッド「modify」の引数 1 は、文字列リテラルでなければなりません。

これを回避する方法はありますか?

私はこれを試しましたが、うまくいきません:(

4

1 に答える 1

0

よく出てくるように、動的SQLは常に私の助けになっています:)

しかし、私の不安には、 t-sql が解釈されることを考えると、 tsql を動的言語自体のようにしないのはなぜですか?

これは、問題に関するいくつかのオプションの解決策があるリンクです。

私が使用した解決策:

sp_executesql @StrQuery を実行します。

于 2010-03-30T11:28:29.520 に答える