2

次の XML の例では、属性の名前「TimeStamp」を「Timestamp」に置き換える必要があります。

<CMD CommandID="6000">
   <DATA>
      <ReportData Key="10000">
         <Event TimeStamp="2013-03-07 15:42:49.000" Name="ABC" />
         <Event TimeStamp="2013-03-07 15:42:50.000" Name="DEF" />
         <Event TimeStamp="2013-03-07 16:22:03.000" Name="GHI" />
      <ReportData>
   <DATA>
<CMD>

XMLタイプの列内の SQL Server 2008 データベースに格納されます。

私はこのようなことを試みましたが、それは間違っています:

DECLARE @variable NVARCHAR(20) = 'Timestamp'

UPDATE MyDatabase.dbo.MyTable
SET MyXmlColumn.modify('replace value of (/CMD/DATA/ReportData/Event/@TimeStamp) with sql:variable("@variable") ')

ご協力ありがとうございました。

4

1 に答える 1

4

置換を使用できます。

update MyDatabase.dbo.MyTable
set MyXMLColumn = replace(cast(MyXMLColumn as nvarchar(max)), '<Event TimeStamp="', '<Event Timestamp="')
于 2013-03-15T12:48:36.973 に答える