SQLXMLBulkLoad错误的列类型

时间:2010-08-15 16:25:06

标签: xml sql-server-2008 visual-studio-2010

我正在尝试使用C#(Visual Studio 2010)中的SQLXMLBulkLoad对象模型将XML数据批量转换为SQL Server 2008 Express。

我的问题是我被困在关系中。请考虑以下带注释的XSD文件:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                   xmlns:sql="urn:schemas-microsoft-com:mapping-schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
  <xs:appinfo>
    <sql:relationship name="CompanyEmployeeRel"
                      parent="Company"
                      parent-key="ID"
                      child="Employee"
                      child-key="CompanyID"/>
  </xs:appinfo>
</xs:annotation>
<xs:element name="Employee" sql:key-fields="ID">
  <xs:complexType>
    <xs:attribute name="ID" sql:datatype="uniqueidentifier"/>
    <xs:attribute name="FirstName" sql:datatype="nvarchar(255)" />
    <xs:attribute name="LastName" sql:datatype="nvarchar(255)"/>
  </xs:complexType>
</xs:element>
<xs:element name="Company" sql:key-fields="ID">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="Employee" sql:relationship="CompanyEmployeeRel"/>
    </xs:sequence>
    <xs:attribute name="ID" sql:datatype="uniqueidentifier"/>
    <xs:attribute name="Name" sql:datatype="nvarchar(100)"/>
  </xs:complexType>
</xs:element>
</xs:schema>

然后我让SQLXMLBulkLoad为我创建数据库架构。这导致以下两个表:

alt text http://dl.dropbox.com/u/17384/Bildschirmfoto-3.png

主键和外键都是正确的;但我的问题是带下划线的列。我指定Company表的ID列应该是uniqueidentifier,但它是nvarchar(40)。 Name列也是nvarchar(40),但我指定它应该是nvarchar(100)。

有人知道为什么会这样吗?我可以做些什么来对付这个问题?

此致

0 个答案:

没有答案