2014-04-22 1 views
2

Vb.net에 DataSet과 DataTable이 있습니다. DataTable 값을 XML로 변환 했으므로 SQL Server에서 하나의 INSERT 문에 모든 행을 쓸 수 있으므로 저장 프로 시저를 다시 호출하고 다시 수십만 개의 행이 있습니다.XML 데이터를 SQL Server로 가져 오기 Select 문

는 여기 샘플 XML 및 SQL 스크립트를

DECLARE @MyXML XML 
SET @MyXML = '<NewDataSet> 
<Table> 
    <ColVal>507.6100</ColVal> 
</Table> 
<Table> 
    <ColVal>750.5800</ColVal> 
</Table> 
<Table> 
    <ColVal>328.3600</ColVal> 
</Table> 
<Table> 
    <ColVal>194.7700</ColVal> 
</Table> 
</NewDataSet>' 

SELECT 
a.b.value('Table[1]/ColVal[1]','varchar(10)') AS Fruits4 
FROM @MyXML.nodes('NewDataSet') a(b) 
  1. 결과 : 그것은 단지 첫 번째 행의 데이터를 반환 507.6100

, 나는 모든 행을 반입 할 수 있습니다. 아이 레벨이 Table에서 그래서

답변

1
가 쿼리를 이동

(그렇지 않으면 Table[1] 하나의 결과를 제한합니다) :

SELECT 
a.b.value('ColVal[1]','varchar(10)') AS Fruits4 
FROM @MyXML.nodes('NewDataSet/Table') a(b) 

SqlFiddle here

+0

감사합니다 @StuartLC – DareDevil

관련 문제