CREATE FEDERATION (Azure SQL-Datenbank)

Erstellt einen neuen Verbund in Azure SQL-Datenbank.

Wichtig

In der aktuellen Implementierung werden Verbunde bei der Web- und Business-Dienstebene nicht mehr unterstützt. Sie könnten beispielsweise benutzerdefinierte Shardinglösungen einsetzen, um die Skalierbarkeit, Flexibilität und Leistung zu maximieren.Weitere Informationen zu benutzerdefinierten Shardinglösungen finden Sie unter Horizontales Skalieren bei Azure SQL-Datenbanken.

Gilt für: Azure SQL-Datenbank.

Syntax

CREATE FEDERATION
    federation_name { <federation_distribution_scheme> }

<federation_distribution_scheme> ::= 
    <federation_distribution>

<federation_distribution> ::=
     ( distribution_name <data_type> RANGE )

<data_type> ::= 
     [system_type_name . ] type_name  

Argumente

  • federation_name
    Der Name des zu erstellenden Verbunds. Der Name muss innerhalb von eindeutig sein, den Regeln für Bezeichner entsprechen und vom Typ sysname sein.

  • distribution_name
    Der Name des Verbundschlüssels. Der Name ist ein Bezeichner, mit dem auf den Verbundschlüssel verwiesen wird. Mit verbundbezogenen Anweisungen wie CREATE TABLE … FEDERATED ON(...) oder USE FEDERATION wird auf den Namen verwiesen. Distribution_name muss den Regeln für Bezeichner entsprechen und ist vom Typ sysname.

  • type_name
    Der Typname des Verbundschlüsseltyps. Der Typ muss vom Typ int, bigint, uniqueidentifier oder varbinary(n) sein, wobei n maximal 900 betragen kann.

  • RANGE
    Der Partitionierungstyp. Nur die RANGE-Partitionierung wird unterstützt.

Hinweise

Das Verbundobjekt ermöglicht das horizontale Skalieren einer Auflistung von Tabellen. Ein Verbund enthält das gesamte Dataset für die angegebene Auflistung von Tabellen und definiert die Verteilungsrichtlinie und den Datentyp, die für die Verteilung der Daten verwendet werden.

Verbunde können in einer beliebigen Datenbank erstellt werden, und eine Datenbank kann mehrere Verbunde enthalten. Jeder Verbund stellt eine separate Auflistung von Tabellen dar, z. B. "alle Kundendaten" oder "alle Auftragsdaten", und jedes Verbundmitglied enthält in der Regel eine Teilmenge des vollständigen Datasets. Im besonderen Fall eines einzelnen Verbundmitglieds kann das einzelne Mitglied die gesamte Auflistung von Tabellen enthalten.

Beim Erstellen eines Verbunds wird das erste Mitglied, das den vollständigen Bereich für den angegebenen Datentyp abdeckt, ebenfalls erstellt. Dieses Verbundmitglied ist in sys.databases als reguläre Datenbank in der master-Datenbank sichtbar. Über die sys.federation_members-Systemsicht ist es auch in der Benutzerdatenbank sichtbar, die den Verbund enthält. Der Datenbankname des Mitglieds wird zufällig generiert.

Bei der Bereichsverteilung stellen range_low und range_high die Begrenzungswerte für das Verbundmitglied dar. Für Verbundmitglieder wird range_low auf den Minimalwert festgelegt, der im Verbundschlüssel eines angegebenen Mitglieds zulässig ist, und range_high wird auf den Maximalwert +1 festgelegt, der im Verbundschlüssel für ein angegebenes Mitglied zulässig ist. In besonderen Fall eines einzelnen Verbundmitglieds stellt range_low den Minimalwert der Domäne des Verbundschlüssel-Datentyps dar, und range_high ist NULL, um den Maximalwert +1 darzustellen. Der Bereich darf keine Lücken in der Abdeckung aufweisen. Es dürfen keine Werte im Bereich fehlen. Jeder gültige Wert des Bereichs wird durch ein Verbundmitglied abgedeckt. Der Verbundschlüssel-Datentyp wird verwendet, um die Domäne der zulässigen Werte anzugeben. Der Wert range_low ist für den Bereich inklusiv, während range_high exklusiv ist. Wenn beispielsweise ein Verbundmitglied den Wert 100 für range_low und 200 für range_high aufweist, ist der Wert 100 im Verbund enthalten, nicht aber der Wert 200. Das Verbundmitglied mit dem Maximalwert des Bereichs enthält den Maximalwert für die Domäne des Verbundschlüssel-Datentyps und meldet NULL als Wert von range_high.

Wichtig

Die CREATE FEDERATION-Anweisung muss die einzige Anweisung im Batch sein und darf nicht Teil einer äußeren Transaktion sein.Wenn eine äußere Transaktion vorhanden ist, wird der Fehler 226 zurückgegeben.