Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I ett schema för XML-schemadefinitionsspråk (XSD) anger elementet unique unikhetsbegränsningen för ett element eller attribut. När ett XML-schema översätts till ett relationsschema mappas den unika begränsning som anges för ett element eller attribut i XML-schemat till en unik begränsning i DataTable motsvarande DataSet som genereras.
I följande tabell beskrivs de msdata attribut som du kan ange i elementet unique .
| Attributnamn | Beskrivning |
|---|---|
| msdata:ConstraintName | Om det här attributet anges används dess värde som villkorsnamn. I annat fall name ger attributet värdet för villkorsnamnet. |
| msdata:PrimaryKey | Om PrimaryKey="true" finns i elementet unique skapas en unik begränsning med egenskapen inställd på IsPrimaryKeytrue. |
I följande exempel visas ett XML-schema som använder elementet unique för att ange en unikhetsbegränsning.
<xs:schema id="SampleDataSet"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="Customers">
<xs:complexType>
<xs:sequence>
<xs:element name="CustomerID" type="xs:integer"
minOccurs="0"/>
<xs:element name="CompanyName" type="xs:string"
minOccurs="0"/>
<xs:element name="Phone" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SampleDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="Customers" />
</xs:choice>
</xs:complexType>
<xs:unique msdata:ConstraintName="UCustID" name="UniqueCustIDConstr" > <xs:selector xpath=".//Customers" /> <xs:field xpath="CustomerID" /> </xs:unique>
</xs:element>
</xs:schema>
Elementet unique i schemat anger att värdet för det Customers underordnade elementet måste vara unikt för alla CustomerID element i en dokumentinstans. När du skapar DataSet läser mappningsprocessen det här schemat och genererar följande tabell:
Customers (CustomerID, CompanyName, Phone)
Mappningsprocessen skapar också en unik begränsning för CustomerID kolumnen, som du ser i följande DataSet. (För enkelhetens skull visas endast relevanta egenskaper.)
DataSetName: MyDataSet
TableName: Customers
ColumnName: CustomerID
AllowDBNull: True
Unique: True
ConstraintName: UcustID Type: UniqueConstraint
Table: Customers
Columns: CustomerID
IsPrimaryKey: False
I det DataSet som genereras är egenskapen IsPrimaryKey inställd på False för den unika begränsningen. Egenskapen unique i kolumnen anger att CustomerID kolumnvärdena måste vara unika (men de kan vara en null-referens, som anges av AllowDBNull kolumnens egenskap).
Om du ändrar schemat och anger det valfria msdata:PrimaryKey attributvärdet till Sant skapas den unika begränsningen i tabellen. Kolumnegenskapen AllowDBNull är inställd på IsPrimaryKey och egenskapen för villkoret är inställd på Sant, vilket gör CustomerID kolumnen till en primär nyckelkolumn.
Du kan ange en unik begränsning för en kombination av element eller attribut i XML-schemat. I följande exempel visas hur du anger att en kombination av CustomerID och CompanyName värden måste vara unika för alla Customers i alla instanser genom att lägga till ytterligare ett xs:fältelement i schemat.
<xs:unique
msdata:ConstraintName="SomeName"
name="UniqueCustIDConstr" >
<xs:selector xpath=".//Customers" />
<xs:field xpath="CustomerID" />
<xs:field xpath="CompanyName" />
</xs:unique>
Det här är villkoret som skapas i den resulterande DataSeten.
ConstraintName: SomeName
Table: Customers
Columns: CustomerID CompanyName
IsPrimaryKey: False