Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
XML Toplu Yük, sql:limit alanı ve sql:limit-değer açıklamalarını tanımlarına göre işler. Daha fazla bilgi için bkz. Sql:limit-field ve sql:limit-value (SQLXML 4.0) kullanarak Değerleri Filtrelemek.
Örneğin, bir veritabanının aşağıdaki tabloları içerdiğini varsayalalım:
Müşteri (CustomerID, Şirket Adı)
Adresler (CustomerID, StreetAddress, AddressType)
Bir müşterinin birçok adresi olabilir ve her adresin kendisiyle ilişkili bir adres türü vardır (örneğin, bir gönderim adresi veya faturalama adresi).
Şimdi, aşağıdaki annotasyonlu XSD şemasında belirtilen bu tabloların XML görünümünü ele alalım:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="CustAddr"
parent="Customer"
parent-key="CustomerID"
child="Address"
child-key="CustomerID" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Customer" sql:relation="Customer" >
<xsd:complexType>
<xsd:attribute name="CustomerID" type="xsd:int" />
<xsd:attribute name="CompanyName" type="xsd:string" />
<xsd:attribute name="BillTo"
type="xsd:string"
sql:relation="Address"
sql:field="StreetAddress"
sql:limit-field="AddressType"
sql:limit-value="billing"
sql:relationship="CustAddr" >
</xsd:attribute>
<xsd:attribute name="ShipTo"
type="xsd:string"
sql:relation="Address"
sql:field="StreetAddress"
sql:limit-field="AddressType"
sql:limit-value="shipping"
sql:relationship="CustAddr" >
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Bu şema ve XML verisi alındıktan sonra, XML Toplu Yük, BillTo atributu için belirtilen değeri CustAddress tablosunun StreetAddress sütununa ve AddressType sütununun "billing" değerini ekler.
Benzer şekilde, XML Toplu Yük, ShipTo özniteliği için belirtilen değeri StreetAddress sütununa ve "shipping" değerini Adres Tipi sütununa ekler.
Çalışan bir örnek test etmek için
Bu örnekte verilen şemayı SampleSchema.xmlolarak kaydedin.
Şu tabloları oluşturun:
CREATE TABLE Customer( CustomerID int PRIMARY KEY, CompanyName varchar(20) NOT NULL) GO CREATE TABLE Address( CustomerID int FOREIGN KEY REFERENCES Customer(CustomerID), StreetAddress varchar(50), AddressType varchar(10)) GOAşağıdaki örnek verileri SampleXMLData.xmlolarak kaydedin:
<Customer CustomerID="1111" CompanyName="Sean Chai" City="NY" BillTo="111 Maple (Billing) " ShipTo="111 Maple (Shipping)" /> <Customer CustomerID="1112" CompanyName="Dont Know" City="LA" BillTo="222 Spruce (Billing)" ShipTo="222 Spruce (Shipping)" />XML Toplu Yükleme çalıştırmak için, bu Microsoft Visual Basic Scripting Edition (VBScript) örneğini Sample.vbs olarak kaydedip çalıştırın:
set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0") objBL.ConnectionString = "provider=SQLOLEDB;data source=localhost;database=tempdb;integrated security=SSPI" objBL.ErrorLogFile = "c:\error.log" objBL.XMLFragment = True objBL.CheckConstraints=True objBL.Execute "c:\SampleSchema.xml", "c:\SampleXMLData.xml" set objBL=Nothing
Bu eşdeğer XDR şemasıdır:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ElementType name="Customer" sql:relation="Customer" >
<AttributeType name="CustomerID" />
<AttributeType name="CompanyName" />
<AttributeType name="BillTo" />
<AttributeType name="ShipTo" />
<attribute type="CustomerID" />
<attribute type="CompanyName" />
<attribute type="BillTo"
sql:limit-field="AddressType"
sql:limit-value="billing"
sql:field="StreetAddress"
sql:relation="Address" >
<sql:relationship
key="CustomerID"
key-relation="Customer"
foreign-relation="Address"
foreign-key="CustomerID" />
</attribute>
<attribute type="ShipTo"
sql:limit-field="AddressType"
sql:limit-value="shipping"
sql:field="StreetAddress"
sql:relation="Address" >
<sql:relationship
key="CustomerID"
key-relation="Customer"
foreign-relation="Address"
foreign-key="CustomerID" />
</attribute>
</ElementType>
</Schema>