Sql server sql xml顺序处理器
我想知道是否有人可以给我指一个教程,或者给我一些关于处理XML“requestforquote”文档的建议。使用SQLServer2005。例如:Sql server sql xml顺序处理器,sql-server,sql-server-2005,xquery-sql,Sql Server,Sql Server 2005,Xquery Sql,我想知道是否有人可以给我指一个教程,或者给我一些关于处理XML“requestforquote”文档的建议。使用SQLServer2005。例如: <MyQuote> <Header> <Customer>XYZ</Customer> <Material>Wood&</Material> <Header> <LineItems> <Line>
<MyQuote>
<Header>
<Customer>XYZ</Customer>
<Material>Wood&</Material>
<Header>
<LineItems>
<Line>
<Quantity>32</Quantity>
<Model>Chair 350</Model>
<Color>Red</Color>
</Line>
.
</LineItems>
</MyQuote>
XYZ
木材及
32
主席350
红色
.
只是用XQuery弄湿了我的脚。我需要将此文档分解为单独的行项目,用数字标识每个项目,验证它们并计算价格。还需要能够添加/编辑/删除任何一个。我可以看到如何将这些行放入表中,但看不到如何用序列号标识它们并对它们应用存储过程。我需要能够随机处理任何请求,例如验证第6行
,计算第3行的价格
删除第4行
,将第2行更改为黄色
,等等
我假设最好的方法是将整个文档存储为XML列并对其进行处理,而不是将单个行项目分解并存储在关系表中
任何建议、代码、URL等都将不胜感激
我想知道是否有人能给我指点一个教程或者给我一些建议
关于处理XML“报价请求”文档的建议。使用
SQL Server 2005
以下是一些有用的页面:
select
T.N.value('Quantity[1]', 'int') as Quantity,
T.N.value('Model[1]', 'varchar(25)') as Model,
T.N.value('Color[1]', 'varchar(25)') as Color
from @XML.nodes('/MyQuote/LineItems/Line') as T(N)
每个都有一个数字
不那么容易。看看这个答案
还需要能够添加/编辑/删除任何一个
只用
要获得第6行,您应该:
select
T.N.value('Quantity[1]', 'int') as Quantity,
T.N.value('Model[1]', 'varchar(25)') as Model,
T.N.value('Color[1]', 'varchar(25)') as Color
from @XML.nodes('/MyQuote/LineItems/Line[6]') as T(N)
/MyQuote/LineItems/Line[6]
与/MyQuote/LineItems/Line[position()=6]
我假设最好的方法是将整个文档存储为XML
列并对其进行处理,而不是分解和存储
关系表中的单个行项目
我不知道什么最适合你,但我肯定会将数据分解到表中,除非有一些非常令人信服的理由不这样做
我想知道是否有人能给我指点一个教程或者给我一些建议
关于处理XML“报价请求”文档的建议。使用
SQL Server 2005
以下是一些有用的页面:
select
T.N.value('Quantity[1]', 'int') as Quantity,
T.N.value('Model[1]', 'varchar(25)') as Model,
T.N.value('Color[1]', 'varchar(25)') as Color
from @XML.nodes('/MyQuote/LineItems/Line') as T(N)
每个都有一个数字
不那么容易。看看这个答案
还需要能够添加/编辑/删除任何一个
只用
要获得第6行,您应该:
select
T.N.value('Quantity[1]', 'int') as Quantity,
T.N.value('Model[1]', 'varchar(25)') as Model,
T.N.value('Color[1]', 'varchar(25)') as Color
from @XML.nodes('/MyQuote/LineItems/Line[6]') as T(N)
/MyQuote/LineItems/Line[6]
与/MyQuote/LineItems/Line[position()=6]
我假设最好的方法是将整个文档存储为XML
列并对其进行处理,而不是分解和存储
关系表中的单个行项目
我不知道什么最适合你,但我肯定会将数据分解到表中,除非有一些非常令人信服的理由不这样做