【发布时间】:2012-12-02 18:58:55
【问题描述】:
好的,我现在有这个存储过程的代码。
ALTER PROC [dbo].[Readxml]
@xmlparam XML
AS
BEGIN
SET NOCOUNT ON
DECLARE @CustomerXml AS XML
SET @CustomerXml = @xmlparam
INSERT INTO Custtable.dbo.SPCustomer
(
CustomerId,
CustomerName
)
SELECT
Customer.attribute.value('CustomerId[1]', 'nvarchar(255)') AS CustomerId,
Customer.attribute.value('Name[1]', 'nvarchar(255)') AS CustomerName
FROM
@xmlparam.nodes('Customers/Customer') AS Customer(attribute)
END
我的 XML 看起来像这样(简化)。
<Customers>
<Customer CustomerId="94" Name="name1" />
<Customer CustomerId="95" Name="name2" />
<Customer CustomerId="96" Name="name3" />
</Customers>
现在我的代码无法获取属性值,据我了解,我正在尝试获取 <Customer> 标记内的元素,称为 CustomerId 和 Name,它们不存在。
当从表中选择所有行时,在过程完成后,我得到所有行但具有 NULL 值。
我的问题,如何从 XML 中获取属性?
提前致谢!
【问题讨论】:
标签: sql xml tsql stored-procedures