2

我有一个 SQL Server 2005 数据库,其中有一个名为改进的表。

在 Improvements 中有一个名为 TransactionID 的字段和一个名为 Comments 的字段。字段 Comments 是一种 XML 数据类型,具有如下条目。

<Comment>
    <CreatedBy>Bob</CreatedBy>
    <CreatedDateTime>2009-08-24T11:36:13.020774+01:00</CreatedDateTime>
    <CreaterRole>Manager</CreaterRole>
    <CreationStage>INITIAL REVIEW</CreationStage>
    <CreationStatus>APPROVED</CreationStatus>
    <UserComment>Approved</UserComment>
</Comment>
<Comment>
    <CreatedBy>Bob</CreatedBy>
    <CreatedDateTime>2009-08-24T11:36:25.7240616+01:00</CreatedDateTime>
    <CreaterRole>Manager</CreaterRole>
    <CreationStage>CAPTURE</CreationStage>
    <CreationStatus>ACCEPTED</CreationStatus>
    <UserComment />
</Comment>

我需要输入一个额外的条目:

 <Comment>
    <CreatedBy>Bob</CreatedBy>
    <CreatedDateTime>2013-01-29T11:36:25.7240616+01:00</CreatedDateTime>
    <CreaterRole>Manager</CreaterRole>
    <CreationStage>CLOSED</CreationStage>
    <CreationStatus>CLOSED</CreationStatus>
    <UserComment>Closed as agreed<UserComment />
 </Comment>

其中 TransactionID =交易编号。

我在互联网上找到了许多使用 SET 修改条目的解决方案.....但无法弄清楚如何实际添加条目。

任何人都可以帮我解决这个问题吗?

提前谢谢了。

凯夫。

4

1 回答 1

1
declare @TransactionID int
declare @Comment xml

set @TransactionID = 1
set @Comment = '
<Comment>
    <CreatedBy>Bob</CreatedBy>
    <CreatedDateTime>2013-01-29T11:36:25.7240616+01:00</CreatedDateTime>
    <CreaterRole>Manager</CreaterRole>
    <CreationStage>CLOSED</CreationStage>
    <CreationStatus>CLOSED</CreationStatus>
    <UserComment>Closed as agreed</UserComment>
</Comment>'

update improvements 
set Comments.modify('insert sql:variable("@Comment") as last into /')
where TransactionID = @TransactionID
于 2013-01-29T18:06:20.947 回答