1
A
回答
1
在SQL Server 2005及更高版本上,如果您需要快速進行少量行的臨時導入,則還可以使用此XQuery代碼而不是大型SQL XML Bulkload。它不是那麼快,但你不會有創建模式等來使用它:
DECLARE @Input XML
SET @Input = '<ROOT>
<Customers>
<CustomerId>1111</CustomerId><CompanyName>Sean Chai</CompanyName><City>NY</City>
....
</Customers>
</ROOT>'
INSERT INTO dbo.Customer(CustomerId, CompanyName, City)
SELECT
InputData.Customer.value('(CustomerId)[1]', 'int') 'Customer ID',
InputData.Customer.value('(CompanyName)[1]', 'varchar(100)') 'Company Name',
InputData.Customer.value('(City)[1]', 'varchar(50)') 'City'
FROM
@Input.nodes('/ROOT/Customers') AS InputData(Customer)
爲XML的一小塊一小塊的偉大工程,如果你需要存儲那些SQL表。
有關背景信息,請參閱聯機叢書Introduction to XQuery in SQL Server 2005。
1
假設你想要閱讀的實體作爲行和它們的屬性,因爲這Microsoft Support page描述過程列數據。
你的表和XML數據必須匹配:
CREATE TABLE Customer (
CustomerId INT PRIMARY KEY,
CompanyName NVARCHAR(20),
City NVARCHAR(20))
XML:
<ROOT>
<Customers>
<CustomerId>1111</CustomerId>
<CompanyName>Sean Chai</CompanyName>
<City>NY</City>
</Customers>
...
</ROOT>
然後你需要創建一個架構映射文件:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<ElementType name="CustomerId" dt:type="int" />
<ElementType name="CompanyName" dt:type="string" />
<ElementType name="City" dt:type="string" />
<ElementType name="ROOT" sql:is-constant="1">
<element type="Customers" />
</ElementType>
<ElementType name="Customers" sql:relation="Customer">
<element type="CustomerId" sql:field="CustomerId" />
<element type="CompanyName" sql:field="CompanyName" />
<element type="City" sql:field="City" />
</ElementType>
</Schema>
最後一個腳本(在這種情況下VBScript)加載數據:
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MySQLServer;database=MyDatabase;uid=MyAccount;pwd=MyPassword"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "c:\customermapping.xml", "c:\customers.xml"
Set objBL = Nothing
相關問題
- 1. 轉換XML到表中的SQL Server 2005
- 2. 將字符串轉換爲SQL Server 2005中的XML
- 3. 如何在SQL Server 2005/2008中使用XQuery將xml轉換爲非xml文本?
- 4. 如何將SQL Server 2005 .mdf轉換爲SQL Server CE .sdf?
- 5. 將sql server 2008數據庫轉換爲sql server 2005
- 6. SQL Server將XML轉換爲JSON
- 7. 將Sql錶轉換爲XML
- 8. 將XML轉換爲SQL Server數據庫
- 9. 將XML文件分解爲SQL Server表
- 10. SQL Server 2005 - 轉換失敗
- 11. SQL Server 2005中SYSDATE轉換
- 12. 將XML文件轉換爲MS SQL Server數據庫
- 13. SQL Server腳本將xml屬性和文本值轉換爲表
- 14. 行轉換爲sql server 2005中的列?
- 15. 將MySQL轉換爲SQL Server
- 16. 如何在SQL Server 2005數據庫文件轉換爲Excel
- 17. XML和Sql Server 2005
- 18. SQL Server 2005 FOR XML
- 19. 如何將SQL Server 2008 .mdf文件轉換爲SQL Server 2012?
- 20. 將.bak文件轉換爲sql
- 21. 如何將數據庫表結構轉換爲sql server中的XML文件?
- 22. 使用SQL Server 2008 XQuery將XML樹轉換爲平面文本
- 23. 將xml轉換爲sql
- 24. 將xml文件轉換爲文本
- 25. SQL Server將行轉換爲新表
- 26. 將Postgis錶轉換爲SQL Server 2008
- 27. SQL Server- PIVOT表。將行轉換爲列
- 28. 將MS SQL Server錶轉換爲C#類
- 29. 無法將SQL查詢轉換爲SQL Server 2000的XML輸出
- 30. 將SQL Server轉換爲Oracle
謝謝,但是,我們有任何查詢來做到這一點 – subash 2010-06-16 12:32:02
@subash - 沒有一個「查詢」,你「運行」xml文件對映射文件,它會導入數據。這是你必須遵循的過程。 – ChrisF 2010-06-16 12:32:48