2015-09-28 87 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

相关问题