我想寫一個存儲過程,其中我從XML字符串中插入了一些東西。 這是爲了避免在循環中進行大量的存儲過程調用。需要幫助解析XML字符串並在存儲過程中插入值
這是我走到這一步,但它給我的錯誤:
消息207,級別16,狀態1,過程newsMapper_prc,第22行
無效的列名 '標題'。
消息207,級別16,狀態1,過程newsMapper_prc,行22
無效的列名'故事'。
消息207,級別16,狀態1,過程newsMapper_prc,行25
無效的列名'實體'。
消息207,級別16,狀態1,過程newsMapper_prc,行27
無效的列名稱'實體'。
真的不能想出解決辦法,一些幫助,將不勝感激
<newsfile>
<headline>THIS IS A NEWS HEADLINE</headline>
<story>THIS IS A NEWS STORY</story>
<entity> 1234</entity>
<entity>1111</entity>
<entity>2222</entity>
</newsfile>
存儲過程的代碼:
CREATE PROCEDURE newsMapper_prc
-- Add the parameters for the stored procedure here
(@xmlString xml)
AS
declare @criteriaTable table (criterianame varchar(100), parm varchar(MAX))
insert into @criteriaTable
Select
criteriaValues.parm.value('../@type','varchar(MAX)'),
criteriaValues.parm.value('.','varchar(MAX)')
from @xmlString.nodes('/newsfile/headline') as headline(parm),
@xmlString.nodes('/newsfile/headline/story') as story(parm),
@xmlString.nodes('/newsfile/headline/story/entity') as entity(parm)
insert into News (newsHeadline, newsStory, newsDate) values ((select headline from @criteriaTable),(select story from @criteriaTable), GETDATE())
declare @newsID int
SET @newsID = scope_identity()
while exists (select entity from @criteriaTable)
BEGIN
insert into NewsEntities(newsID,entityID) values (@newsID,(Select entity from @criteriaTable))
END
我想這意味着是SQL Server的?哪個版本? –