我有一個標題爲Code的表,其中包含兩個字段,ID和代碼。將XML導入到未導入的SQL Server 2005數據中
我有一個XML文件:
<DataSet>
<scan>
<ID>4</ID>
<Code>420</Code>
</scan>
<scan>
<ID>5</ID>
<Code>420</Code>
</scan>
<scan>
<ID>6</ID>
<Code>420</Code>
</scan>
<scan>
<ID>4</ID>
<Code>420</Code>
</scan>
<scan>
<ID>5</ID>
<Code>420</Code>
</scan>
</DataSet>
和正在使用該
INSERT INTO code (id,code)
SELECT X.scan.query('id').value('.','INT'),
X.scan.query('code').value('.','VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'C:\dataimport.xml',
SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('dataset/scan') AS X(scan);
查詢無差錯運行,但沒有數據被插入到代碼表。 我看不到我在想什麼。
感謝您的幫助。
感謝您的指導和幫助。知道當我得到相同的結果時我知道要尋找什麼。 – Stan 2012-07-11 13:18:14
查詢的.nodes()部分是否僅區分大小寫?我在其他領域測試了區分大小寫,這個案例似乎並不重要。我將scan.query更改爲Scan.query,它工作正常。我認爲.nodes('DataSet/scan')需要匹配XML中節點的大小寫。那是對的嗎?謝謝 – Stan 2012-07-11 13:37:22
這是區分大小寫的xPath表達式。您在節點,查詢和值中使用的字符串。 – 2012-07-11 13:39:47