2016-08-15 11 views
0

xmlの構成を保持する列を持つテーブル(myTable)があります。ノードの1つに新しい設定を追加する必要がありますが、ノードを追加して見つけて、正しく追加されたかどうかを確認する方法が見つかりません。このxml列は非常に大きいので、手動で追加するのは難しいです。どんな助けもありがとう。sql 2008 xml列に新しいxmlを追加する方法

<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" IsTemplate="false"> <Adapter Name="[dbo].[Customer]"> <Col name="LastName" type="varchar" size="100" param="@P_1" /> <Col name="FirstName" type="varchar" size="100" null="true" param="@P_2" /> <Col name="MiddleInitial" type="nvarchar" size="1" null="true" param="@P_3" /> <Col name="Address" type="varchar" size="500" null="true" param="@P_4" /> <Col name="City" type="varchar" size="100" null="true" param="@P_5" /> <Col name="State" type="varchar" size="20" null="true" param="@P_6" /> <!--Add New Col here--> <Col name="PostalCode" type="varchar" size="20" null="true" param="@P_7" /> </Adapter> </Configuration>

答えて

0

他のクエリからの作品を取った後、私はついにそれが動作するようになったと思います。記録--insert

DECLARE @table VARCHAR (max) 
SET @table = '[dbo].[Customer]' 
DECLARE @Column VARCHAR (max) 
SET @Column = 'test1' 

。記録--Find

UPDATE Sync. scope_config 
SET config_data. modify('insert <Col name="test1" type="bit" null="true" param="@P_000" /> 
after 
(/Configuration/Adapter[@Name=sql:variable("@table")]/Col[@name=sql:variable("@Column")])[1]') 
WHERE config.config_data.exist('/Configuration/Adapter[@Name=sql:variable("@table")]') = 1 

SELECT s.config_data. query('(/Configuration/Adapter[@Name=sql:variable("@table")])') 
from dbo.config s 
WHERE s.config_data. exist('/Configuration/Adapter[@Name=sql:variable("@table")]/Col[@name=sql:variable("@Column")]') = 1 
関連する問題