ALTER PROCEDURE GetSingersGenere
(@SingerData ntext)
AS
BEGIN
DECLARE @hDoc int
exec sp_xml_preparedocument @hDoc OUTPUT,@SingerData
IF OBject_id('SingerTable') IS NOT NULL
BEGIN
DROP TABLE SingerTable
END
CREATE TABLE SingerTable
(
SingerName varchar(200)
)
INSERT INTO SingerTable
(
SingerName
)
SELECT * FROM OpenXML (@hDoc,'/Singers/Singer')
WITH (SingerName varchar(200)) XMLSinger
SELECT * FROM SingerTable
END
,我執行的方式是這樣的: -這個OpenXML有什麼問題?
EXEC GetSingersGenere
'<Singers>
<Singer>
Joe
</Singer>
<Singer>
ACDC
</Singer>
</Singers>'
我看到越來越空表中插入。有誰能指出這個錯誤嗎?
我不知道很多有關OpenXML,但是從一個XPath的角度來看,你嘗試'SELECT * FROM的OpenXML(@hDoc」 /歌手/歌手/文()')'?您的XPath選擇元素...也許選擇不會將它們轉換爲它們的文本內容,除非您明確提出要求。 – LarsH 2010-09-23 08:17:13
你在說哪種OpenXml? Microsoft Office使用的格式?然後我不明白這與你的SQL查詢有什麼關係。你可以添加更多的細節嗎? – 2010-09-23 08:23:59
@ 0xA3,我正在談論Sql server中的OpenXML語句。 – 2010-09-23 08:59:29