2015-09-28 108 views
1

我的表看起來像如何使用存儲過程更新XML數據的SQL TABEL在SQL Server 2008

語言ID

(Primary Key)HOSPITAL ID LANGUAGE ID 

而且下面是插入查詢。

INSERT INTO [dbo].[HOSPITAL_SPOKEN_LANGUAGE] 
(HOSPITAL ID, LANGUAGE ID)SELECT hospitalid,LanguageId 
FROM OPENXML(@XmlHandleLANGUAGE,'/ArrayOfSpokenLanuageInfo/SpokenLanuageInfo',2) 
WITH (LanguageId INT,hospitalid INT) 

下面是我有XML。

<?xml version="1.0"?> <ArrayOfSpokenLanuageInfo 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SpokenLanuageInfo> 
     <LanguageId>8</LanguageId> 
     <hospitalid>19</hospitalid> </SpokenLanuageInfo> <SpokenLanuageInfo> 
     <LanguageId>13</LanguageId> 
     <hospitalid>19</hospitalid> </SpokenLanuageInfo> <SpokenLanuageInfo> 
     <LanguageId>26</LanguageId> 
     <hospitalid>2</hospitalid> </SpokenLanuageInfo> <SpokenLanuageInfo> 
     <LanguageId>52</LanguageId> 
     <hospitalid>2</hospitalid> </SpokenLanuageInfo> </ArrayOfSpokenLanuageInfo> 

我想從XML中插入新項目到表格中,現有項目更新表格從XML。

+2

你真的應該編輯您的帖子:使用格式,添加更多的特定標記,更準確的瞭解您的問題......你不會得到任何迴應這樣... –

回答

0

試試這個..

IF OBJECT_ID('tempdb..#t') IS NOT NULL 
DROP TABLE #temp 

DECLARE @xml xml 
Set @xml= N' 
<ArrayOfSpokenLanuageInfo> 
<SpokenLanuageInfo> 
     <LanguageId>8</LanguageId> 
     <hospitalid>19</hospitalid> 
</SpokenLanuageInfo> 
<SpokenLanuageInfo> 
     <LanguageId>13</LanguageId> 
     <hospitalid>19</hospitalid> 
</SpokenLanuageInfo>  
</ArrayOfSpokenLanuageInfo>' 

SELECT 
doc.col.value('LanguageId[1]', 'nvarchar(100)') LanguageId 
,doc.col.value('hospitalid[1]', 'nvarchar(100)') hospitalid into #t 
FROM @xml.nodes('/ArrayOfSpokenLanuageInfo/SpokenLanuageInfo') doc(col) 

insert into [dbo].[HOSPITAL_SPOKEN_LANGUAGE] ([LANGUAGE ID],[HOSPITAL ID]) (select * from #t) 
+0

這裏還有你插入到表中。你正在使用更新? – Muthu

+0

不要擔心,它會將數據插入到表中HOSPITAL_SPOKEN_LANGUAGE –

+0

我想從XML中插入新項目到表格中,現有項目應該更新到表格中從XML – Muthu

相關問題