0
我的数据看起来象下面这样:插入XML数据转换成SQL Server表
<products>
<product ProductID="1" Price="79.99" Weight="30.00" Quantity="1">
<addon ProductAddonID="0" ControlTypeID="9" Price="25.00" Weight="0.00" Quantity="1" Name="yyy" Data="ASD" />
<addon ProductAddonID="89" ControlTypeID="0" Price="15.00" Weight="4.00" Quantity="1" Name="xxx" Data="" />
</product>
</products>
我的SQL代码如下所示:
INSERT INTO [Order].Items(OrderID, ProductID, Price, Weight, Quantity)
SELECT @OrderID, ProductID, Price, Weight, Quantity
FROM OPENXML (@XmlHandle, '/products/product',1)
WITH (ProductID INT '@ProductID',
Price DECIMAL(6,2) '@Price',
Weight DECIMAL(6,2) '@Weight',
Quantity INT '@Quantity')
SET @OrderItemId = SCOPE_IDENTITY()
INSERT INTO [Order].Addons(OrderItemID, ProductAddonID, ControlTypeID, Price, Weight, Quantity, [Name], DATA)
SELECT @OrderItemId, ProductAddonID, ControlTypeID, Price, Weight, Quantity, [Name], [Data]
FROM OPENXML(@XMLHandle, '/products/product/addon',1)
WITH (
ProductAddonID INT,
ControlTypeID INT,
Price DECIMAL(6,2),
Weight DECIMAL(6,2),
Quantity INT,
[Name] NVARCHAR(500),
[Data] NVARCHAR(max)
)
当我有多个产品/插件,所有的插件都插入最新的@OrderItemID ......我不知道如何在我的SQL中工作,将插件插入循环遍历产品节点的循环中。
任何人都可以指向正确的方向吗?
在此先感谢!
不是真的想使用临时表。 – TheGeekYouNeed 2010-08-05 18:29:46