2010-12-18 7 views
2

I持って次のクエリどのようsql.xmlクエリXML要素の名前を変更成形する

insert @p(target,type,val,[order]) 
     select "/session/verbs/put[@field='orno.f']",'string',141527,1 
union select "/session/verbs/put[@field='orno.t']","string",141527,2 
union select "/session/verbs/put[@field='orno.t']","string",141527,2 
union select "/session/verbs/put[@field='comp.f']","string",000,2 
union select "/session/verbs/put[@field='comp.t']","string",999,2.1 
union select "/session/verbs/setreport/parameter[@name='device']","string",105,3 

set quoted_identifier on 
SELECT (SELECT target, type 
     FROM @p 

     FOR XML RAW, TYPE,ROOT('session')).query('/*'); 

、これは私が<row><parameter>に名前を変更するクエリを変更するにはどうすればよい

<session> 
    <row target="/session/verbs/put[@field='comp.f']" type="string" /> 
    <row target="/session/verbs/put[@field='comp.t']" type="string" /> 
    <row target="/session/verbs/put[@field='orno.f']" type="string" /> 
    <row target="/session/verbs/put[@field='orno.t']" type="string" /> 
    <row target="/session/verbs/setreport/parameter[@name='device']" type="string" /> 

返します

+0

なぜしたいですか?要素を「」と言うXMLを使用する部分を調整する方が簡単ではないでしょうか? – Tomalak

+0

@Tomolakこれはちょうど始まりですが、これにもっと多くの子要素を追加する必要があります。/セッション/パラメータ/パラメータ /セッション/動詞/動詞[@setreport] /パラメータ/を参照するのはおそらく意味があります。 /セッション/行/行.. など。 – TonyP

答えて

2

ユーザーSQL Server 2008(R2)を使用している場合は、パラメータ名RAW退治後:

FOR XML RAW('parameter'), TYPE,ROOT('session')).query('/*'); 
+0

ありがとうアスピリン、どのようにあなたの血液の厚さですか? – TonyP

関連する問題