Làm th? nào đ? nh?p kh?u XML vào SQL Server v?i các thành ph?n XML v?i s? lư?ng l?n t?i

ID c?a bài: 316005 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

D? li?u đư?c th? hi?n trong XML có th? đư?c n?p vào m?t Microsoft SQL Server 2000 cơ s? d? li?u b?ng cách s? d?ng các thành ph?n XML v?i s? lư?ng l?n t?i. Bài vi?t này v?ch ra các bư?c b?n c?n ph?i làm theo đ? t?i d? li?u XML thành m?t b?ng mà đ? t?n t?i trong cơ s? d? li?u.

Chú ý N?u b?n đang s? d?ng Microsoft SQL Server 2005, xem các ch? đ? "XML v?i s? lư?ng l?n t?i ví d?" trong SQL Server 2005 sách tr?c tuy?n.

Yêu c?u

S? d?ng các bư?c trong bài vi?t này b?n c?n:
  • Web phát hành 1 c?a XML cho SQL Server 2000 (SQLXML), ho?c sau này.
Ki?n th?c c?n thi?t:
  • Ki?n th?c c?a XML.

T?o b?ng đ? nh?n d? li?u

S? d?ng các bư?c sau đ? t?o ra m?t b?ng đ? nh?n d? li?u r?ng các thành ph?n XML v?i s? lư?ng l?n t?i quá tr?nh.
  1. T?o m?t cơ s? d? li?u đư?c đ?t tên MyDatabase trong SQL Server.
  2. M? SQL Query Analyzer, và sau đó thay đ?i cơ s? d? li?u đ? MyDatabase.
  3. T?o ra m?t Khách hàng trong b?ng MyDatabase khi ch?y các l?nh SQL sau đây trong truy v?n Analyzer:
    USE MyDatabase
    CREATE TABLE Customer (
       CustomerId INT PRIMARY KEY,
       CompanyName NVARCHAR(20),
       City NVARCHAR(20))
    					

T?o t?p tin ngu?n d? li?u XML

Đây là m? ngu?n d? li?u m?u. Dán XML này vào Notepad, và sau đó lưu t?p tin là C:/Customers.xml.
<ROOT>
  <Customers>
    <CustomerId>1111</CustomerId>
    <CompanyName>Sean Chai</CompanyName>
    <City>NY</City>
  </Customers>
  <Customers>
    <CustomerId>1112</CustomerId>
    <CompanyName>Tom Johnston</CompanyName>
    <City>LA</City>
  </Customers>
  <Customers>
    <CustomerId>1113</CustomerId>
    <CompanyName>Institute of Art</CompanyName>
  </Customers>
</ROOT>
				

T?o t?p tin lư?c đ? ánh x?

Tranh ti?p theo là m?t t?p tin mà b?n s? d?ng đ? l?p b?n đ? các đ?nh d?ng c?a các d? li?u ngu?n XML đ?nh d?ng c?a các Khách hàng b?ng trong cơ s? d? li?u. Dán XML này vào Notepad, và sau đó lưu các t?p tin như C:/Customermapping.xml.
<?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>
				

T?o m?t VBScript chương tr?nh đ? th?c thi các thành ph?n XML v?i s? lư?ng l?n t?i

Đây là k?ch b?n mà s? d?ng thành ph?n XML v?i s? lư?ng l?n t?i đ? chèn các b?n ghi ba b?n t?o ra trong "Create the XML d? li?u t?p ngu?n" nhóm vào b?ng b?n t?o ra trong nh?ng "t?o ra b?ng đ? nh?n đư?c the Data" tiêu đ? b?ng cách s? d?ng lư?c đ? ánh x? th?o lu?n trong các "t?o các b?n đ? Schema File"tiêu đ?. Dán m? này VBScript vào Notepad, và sau đó lưu các t?p tin như C:\Insertcustomers.VBS.
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
				
Kh?c ph?c nh?ng ConnectionString credentials trên d?ng th? hai c?a m? đ? các k?ch b?n có th? làm vi?c v?i cài đ?t SQL Server c?a b?n. N?u b?n s?a d?ng 2, các sau thông báo l?i x?y ra sau khi b?n th?c hi?n các t?p l?nh:
L?i k?t n?i v?i các ngu?n d? li?u

Ch?y VBScript chương tr?nh

Ch?y chương tr?nh VBScript C:\Insertcustomers.vbs đ? chèn các ba khách hàng ghi vào các Khách hàng b?ng.

Ki?m tra xem nó ho?t đ?ng

Trong SQL Query Analyzer, chuy?n sang các MyDatabase cơ s? d? li?u, và sau đó ch?y truy v?n này:
SELECT * FROM Customer
				
Lưu ? r?ng các h? sơ ba t?o ra trong tiêu đ? "T?o t?p ngu?n d? li?u XML" và đang trong các Khách hàng b?ng.

Thay th? k? thu?t

Các thành ph?n XML v?i s? lư?ng l?n t?i có kh? năng:
  • L?p b?n đ? m?t tài li?u XML đ? b?i b?ng b?ng cách s? d?ng m?t m?i quan h? đư?c xác đ?nh trong t?p tin lư?c đ? XML.
  • T?o ra các b?ng lư?c đ? trư?c khi các s? lư?ng l?n t?i.
  • S? lư?ng l?n t?i t? m?t d?ng su?i.
  • S? lư?ng l?n t?i trong tràn c?t.



TÀI LIỆU THAM KHẢO

SQLXML cu?n sách tr?c tuy?n; ch? đ?: "th?c hi?n v?i s? lư?ng l?n t?i c?a XML D? li?u"

Thu?c tính

ID c?a bài: 316005 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
T? khóa: 
kbsqlsetup kbhowtomaster kbmt KB316005 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:316005

Cung cấp Phản hồi