我正在尝试完成一项家庭作业,以创建、插入、修改和 xquery 一个 XML 表。到目前为止,我已经能够创建表并插入一些数据行;但是,我被困在修改后的部分。我创建了查询并成功执行,但它没有插入新的材料节点。我必须在所有特征节点下插入这个子节点。
CREATE TABLE Prod_Catalog
(
ID int NOT NULL Primary Key,
xCol xml NOT NULL,
)
-
INSERT INTO dbo.Prod_Catalog VALUES
(1,'<root><productdescription ProductID="P5500xs" ProductName="Brava 55 TV">
<features>Features
<warranty>5 years</warranty>
<maintenance>Dont hit with hammer</maintenance>
</features></productdescription>
</root>'),
(2,'<root><productdescription ProductID="G29-2" ProductName="Panasonic 1100Watt Microwave">
<features>Features
<warranty>1 year</warranty>
<maintenance>Dont cook metal forks!</maintenance>
</features></productdescription>
</root>'),
(3,'<root><productdescription ProductID="LG22-XL" ProductName="LG 20 cubic refrigerator">
<features>Features
<warranty>1 year</warranty>
<maintenance>Makes things cold.</maintenance>
</features></productdescription>
</root>')
-
UPDATE dbo.Prod_Catalog
SET xCol.modify('insert <materials>Electronics,Glass,Flashy Lights</materials> as first into (/root/productiondescription[@ProductID=("P5500xs")]/features)[1]');
GO
-
(3 row(s) affected)
-
<root><productdescription ProductID="P5500xs" ProductName="Brava 55 TV"><features>Features<warranty>5 years</warranty><maintenance>Dont hit with hammer</maintenance></features></productdescription></root>
<root><productdescription ProductID="G29-2" ProductName="Panasonic 1100Watt Microwave"><features>Features<warranty>1 year</warranty><maintenance>Dont cook metal forks!</maintenance></features></productdescription></root>
<root><productdescription ProductID="LG22-XL" ProductName="LG 20 cubic refrigerator"><features>Features<warranty>1 year</warranty><maintenance>Makes things cold.</maintenance></features></productdescription></root>
-
非常感谢任何建议或指导以使其真正发挥作用。
谢谢!