SQLShack

In diesem Artikel wird die Azure SQL-Datenbanksortierungskonfiguration und deren Änderung beim Importieren der Datenbank aus einer BACPAC-Datei erläutert.

Einleitung

Die Sortierung bezieht sich auf eine Konfiguration, die das Verhalten des Datenbankmoduls für Zeichendatensätze auf Server-, Datenbank- oder Spaltenebene bestimmt. SQL Server verfügt über eine breite Palette von Sortierungen für die Behandlung von Sprachunterschieden in verschiedenen Teilen der Welt. Es bietet Sortierregeln, Groß- und Kleinschreibung für Unicode-Datentypen (nchar, nvarchar oder ntext) und Nicht-Unicode (char, varchar, nvarchar).

SQL Server unterstützt die folgenden Sortierungen.

  • Windows
  • Binär: Die binäre Sortierung endet immer mit _BIN oder _BIN2
  • SQL Server: Diese Sortierungsnamen beginnen immer mit SQL_

Bei einem herkömmlichen (lokalen) SQL Server bestimmt das Gebietsschema des Betriebssystems die Standardsortierung. Sie können die Sortierung auf Serverebene jedoch während der SQL Server-Installation oder beim Ändern des Betriebssystemgebietsschemas ändern. Die standardmäßige SQL Server-Sortierung ist SQL_Latin1_General_CP1_CI_AS. Sie können diese Sortierungen im Detail verstehen, indem Sie sich auf die Sortierungs- und Unicode-Unterstützung beziehen.

Anforderungen

In diesem Artikel wird davon ausgegangen, dass Sie über grundlegende Kenntnisse von Azure SQL-Datenbanken verfügen. Wenn Sie ein Anfänger sind, können Sie auf vorhandene Artikel verweisen SQL Azure auf SQLShack. Sie können Microsoft Azure Free Credit nutzen, indem Sie sich unter der URL https://azure.microsoft.com/en-us/free/

Azure SQL Database Collation

Azure SQL DB ist ein verwaltetes PaaS-Angebot für SQL Server mit bestimmten Einschränkungen und Einschränkungen für die Ausführung bestimmter Aufgaben. Wie der lokale SQL Server unterstützt auch Azure DB verschiedene Sortierungen. Um eine Liste der unterstützten Sortierungen für Azure SQL DB zu erhalten, können wir das sys abfragen.fn_helpcollations() Funktion. Es gibt eine Liste von 5.508 Sortierungen zurück. Die folgende Abbildung gibt Ihnen einen Einblick in die Sortierung und Beschreibungen.

Liste der unterstützten Sortierungen

 Liste der unterstützten Sortierungen

Für Azure SQL DB können Sie die Datenbanksortierung auf der Registerkarte Zusätzliche Einstellungen unter SQL-Datenbank erstellen auswählen. Wie unten gezeigt, wird die Standardsortierung als SQL_Latin1_General_CP1_CI_AS angezeigt.

Wir können diese Sortierung aufschlüsseln, um sie zu verstehen.

  • SQL – Es bezieht sich darauf, dass es sich um eine SQL Server-Sortierung handelt
  • Latin1_General – Dieser Teil definiert die Zeichensortierregel
  • CI – Es bezieht sich auf Groß- und Kleinschreibung
  • AS – Es definiert die Akzentempfindlichkeit

 Kollatierung beim Erstellen der Datenbank angeben

 Sortierung angeben beim Erstellen der Datenbank

Sie können auf Sortierung suchen klicken und nach der spezifischen Sortierung suchen, die Sie für Azure DB konfigurieren möchten.

Sie können eine Azure-Datenbank auf einem vorhandenen logischen Azure-Server bereitstellen. Wenn Sie also eine neue Azure-Datenbank mit SSMS erstellen, können Sie auf der Seite Optionen eine bestimmte Sortierung definieren.

Sortierung in SSMS prüfen

Wenn Sie eine Azure SQL-Datenbank mit T-SQL erstellen, können Sie das Schlüsselwort COLLATE verwenden und die erforderliche DB-Sortierung angeben.

1
2
3

DATENBANK ERSTELLEN MyDemoSQLDB
COLLATE Latin1_General_100_CS_AS_SC;
GEHE ZU

Sie müssen die Datenbank in der richtigen Sortierung erstellen. Ihre SQL-Abfragen funktionieren möglicherweise aufgrund einer Nichtübereinstimmung der Sortierung nicht ordnungsgemäß. Wenn Sie jedoch nach dem Erstellen der Azure SQL-Datenbank Änderungen vornehmen müssen, ist dies nicht einfach. Azure SQL DB unterstützt das Ändern der Sortierung mithilfe von ALTER DATABASE COLLATE nicht. Sie erhalten die folgende Fehlermeldung, wenn Sie versuchen, es zu ändern.

1
2
3
4

Master verwenden
gehe zu
DATENBANK ÄNDERN Azuredemodatabase
SORTIEREN SQL_Latin1_General_CP1250_CI_AS

 Ändern Sie die Sortierung mithilfe der COLLATE-Funktion

  • Hinweis: Ändern oder legen Sie eine bestimmte Sortierung erst fest, wenn Sie bestimmte Anforderungen haben. Tun Sie dies niemals direkt in einer Produktionsdatenbank. Testen Sie es gründlich in einer niedrigeren DB-Umgebung und planen Sie dann, mit der Produktionssortierung fortzufahren

Angenommen, Sie stellen eine Azure SQL-Datenbank aus der lokalen BACPAC-Datei bereit. Sie möchten eine andere Sortierung in der Zieldatenbank.

  • Hinweis: Ich gehe davon aus, dass Sie eine aktive Azure SQL-Datenbank haben. Wenn nicht, können Sie ein kostenloses Konto für die Bereitstellung Ihrer Testdatenbank verwenden
  • Für diese Artikeldemo führen wir die folgenden Aufgaben aus:

    • Exportieren Sie die Azure SQL-Datenbank im BACPAC-Format
    • Installieren Sie Microsoft SQL Server Data-Tier Application Framework (18.1)
    • Modell ändern.xml-Dateikonfiguration
    • Verwenden Sie sqlpackage.so stellen Sie die Azure-Datenbank mit aktualisierter Sortierung bereit
    • Überprüfen Sie die Datenbanksortierung

    Schritt 1: Exportieren Sie die Azure SQL-Datenbank im BACPAC-Format

    In diesem Schritt exportieren wir Azure SQL DB im BACPAC-Format. Wir können überprüfen, ob die vorhandene Sortierung SQL_Latin1_General_CP1_CI_AS .

    Vorhandene Sortierung prüfen

    Klicken Sie zum Exportieren mit der rechten Maustaste auf die Azure-Datenbank und wählen Sie Datenschichtanwendung exportieren…

     Exportieren der Azure SQL-Datenbank im BACPAC-Format

     Exportieren Sie die Azure SQL-Datenbank im BACPAC-Format

    Geben Sie das Verzeichnis im Feld Auf lokaler Festplatte speichern an.

    Auf lokaler Festplatte speichern

    Überprüfen, exportieren und überwachen Sie den Fortschritt für Datenschichtanwendungen im BACPAC-Format.

    Status anzeigen

     Status anzeigen

    Schritt 2: Microsoft SQL Server Data-Tier Application Framework (18.1) herunterladen

    Sie müssen die neueste Version von SSDT herunterladen und installieren. Navigieren Sie zu URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 und klicken Sie auf Download.

    Herunterladen von Microsoft SQL Server Data-Tier Application Framework

     Microsoft SQL Server Data-Tier Application Framework herunterladen

    Wählen Sie die gewünschte MSI-Dateiversion aus und laden Sie sie herunter. Es ist eine leichte Paketdatei.

    Wählen Sie MSI

     Wählen Sie MSI

    Folgen Sie dem Installationsassistenten zum Einrichten des Microsoft SQL Server Data-Tier Application Framework.

    Installationsfortschritt

     Installationsfortschritt

     Meldung zum Installationsfortschritt

     Meldung zum Installationsfortschritt

     Installation beendet

     Installation abgeschlossen

    Schritt 3: Benennen Sie die. BACPAC-Datei zu .ZIP

    In diesem Schritt benennen wir die exportierte BACPAC-Paketdatei in ein ZIP-Format um. Klicken Sie dazu mit der rechten Maustaste auf das importierte BACPAC und ändern Sie die Erweiterung in ZIP. Der Dateityp wird nach dem Ändern der Erweiterung komprimiert (gezippt), wie in der folgenden Abbildung gezeigt.

    Benennen Sie die .BACPAC-Datei zu .POSTLEITZAHL

     Benennen Sie die .BACPAC-Datei zu .ZIP

    Bitte klicken Sie mit der rechten Maustaste auf die komprimierte Datei und extrahieren Sie sie. Im extrahierten Ordner finden Sie ein Modell.xml, kopieren Sie das Modell.xml in ein anderes Verzeichnis wie das C:\Temp ordner.

    Modell,XML-Datei

     Modell,XML-Datei

    Öffnen Sie das Modell.xml von C:\Temp\Model.xml und ändern Sie die DB-Sortierung. Die folgende Abbildung zeigt alte und neue Sortierungen für die Azure SQL-Datenbank. Hier verwenden wir SQL-Sortierung mit Groß- und Kleinschreibung.

    Sortierung im Modell ändern.xml

     Sortierung im Modell ändern.xml

    Schritt 4: Bereitstellen der Azure-Datenbank mit sqlpackage.exe

    Hier navigieren Sie zum Verzeichnis C:\Program Dateien \ Microsoft SQL Server \ 150 \ DAC \ bin in der Eingabeaufforderung. Wir verwenden sqlpackage.exe, um den BACPAC mit dem Parameter /ModelFilePath zu importieren. Es überschreibt die BACPAC-Modelldateikonfiguration mit der spezifischen Datei in diesem Parameter.

    Erforderliche Parameter:

    • / tsn: Geben Sie den Azure SQL Server-FQDN an, in den diese BACPAC-Datei importiert werden soll. In meinem Fall ist es azuredemosqldemo.database.windows.net
    • /tdn: Dies ist der neue Azure SQL-Datenbankname. Sie können BACPAC nicht in eine vorhandene Datenbank importieren
    • /tu: Geben Sie den Administratorbenutzernamen an, um eine Verbindung mit Azure SQL Server herzustellen und die Datenbank bereitzustellen
    • /tp: Geben Sie das Kennwort für den Administrator ein
    • /sf: Geben Sie den Speicherort der BACPAC-Datei an
    • /ModelFilePath: Geben Sie das aktualisierte Modell ein.XML-Dateipfad

    Zuvor haben wir die Erweiterung der BACPAC-Datei in ZIP geändert. Wir müssen es wieder in BACPAC ändern, um das sqlpackage auszuführen.exe-Befehl.

    Um die Sortierung im BACPAC zu ändern, führen Sie den folgenden Befehl in einer Eingabeaufforderung aus.

    sqlpackage.exe /Aktion:Importieren /tsn:azuredemosqldemo.database.windows.net /tdn:azuredemodatabasenew /tu:sqladmin /tp:******* /sf:C:\Temp\azuredemodatabase.BACPAC /ModelFilePath:C:\Temp\Modell.xml

    Sie erhalten eine Warnmeldung:

    „Modell überschreiben.xml mit Datei ‚C:\Temp\model.xml‘. Die Verwendung dieser Einstellung kann zu Bereitstellungsfehlern und/oder unbeabsichtigtem Datenverlust führen. Diese Einstellung soll nur bei der Fehlerbehebung bei Problemen mit der Veröffentlichung, dem Import oder der Skriptgenerierung verwendet werden“

    Es startet den Datenimport, verarbeitet Tabellen und stellt die Datenbank darauf bereit. Die Datenbankbereitstellungszeit hängt von der Anzahl der Tabellen, der Datengröße und den Indizes ab.

    Stellen Sie die Datenbank mit sqlpackage bereit.exe

    Am Ende erhalten Sie die Meldung – Erfolgreich importierte Datenbank.

    erfolgreich importierte Datenbank

    Schritt 5: Überprüfung

    Stellen Sie nun mithilfe von SSMS eine Verbindung zur Azure-Datenbank her und überprüfen Sie die Datenbanksortierung mithilfe des folgenden Skripts.

    1
    WÄHLEN SIE CONVERT (varchar(256), DATABASEPROPERTYEX(‚azuredemodatabasenew‘,’collation‘));

    Wie unten gezeigt, verwendet die neu bereitgestellte Datenbank die Sortierung SQL_Latin1_General_CP1_CS_AS.

    Überprüfen Sie die Sortierung in der bereitgestellten Azure SQL-Datenbank

    Melden Sie sich nun beim Azure-Portal an und zeigen Sie die Datenbankeigenschaften an. Diese Datenbank hat eine allgemeine Gen5, 2vcores Preisstufe. Bei der Bereitstellung der Datenbank haben wir keine Preisstufe angegeben. Daher verwendet die Azure SQL-Datenbank die Standardpreisstufe.

    Preisstufen anzeigen

    Schritt 6: Azure-Datenbank in einer bestimmten Preisstufe bereitstellen

    Angenommen, wir möchten eine Datenbank mit geänderter Sortierung und einer Basispreisstufe bereitstellen. Für diese Demo ändern wir die DB-Sortierung in Latin1_General_BIN. Öffnen Sie daher das Modell.xml und ändern Sie die Sortierung wie zuvor hervorgehoben.

    Ändern Sie die DB-Sortierung in Latin1_General_BIN.

    Dieses Mal geben wir einen neuen Parameter(/p) zum Festlegen der Datenbankedition an. Es weist Azure an, die Datenbank unter der bestimmten Preisstufe bereitzustellen.

    sqlpackage.exe /Aktion:Importieren /tsn:azuredemosqldemo.Datenbank.windows.net /tdn:azuredemodatabasenew /tu:sqladmin /tp:******* /p:DatabaseEdition=Basic /sf:C:\Temp\azuredemodatabase.BACPAC /ModelFilePath:C:\Temp\Modell.xml

    Paket bereitstellen

    Überprüfen Sie nach der Bereitstellung der Datenbank die Sortierung der Datenbank. Wie unten gezeigt, wird die Kollatierung Latin1_General_BIN verwendet.

    DB-Sortierung überprüfen

     Überprüfen der DB-Sortierung

    Sie können eine Verbindung zum Azure-Portal herstellen und die Preisstufe als Basic überprüfen.

    Preisstufe überprüfen

    • Hinweis: Sie sollten die DB-Sortierung nicht ohne besondere Anforderungen ändern. Es kann zu Problemen führen, wenn Sie es willkürlich ändern

    Fazit

    In diesem Artikel wurde die standardmäßige Azure SQL-Datenbanksortierung und der Vorgang zum Ändern beim Importieren von Datenbanken aus einer BACPAC-Datei erläutert. Sie können die gewünschte Sortierung angeben und die Datenbank bereitstellen. Ändern Sie jedoch niemals die Sortierung, es sei denn, Sie haben eine bestimmte Anforderung. Sie können die Schritte in Ihrer eigenen Azure SQL-Datenbank testen.

    • Autor
    • Neueste Beiträge
     Rajendra Gupta
    Als MCSA Certified und Microsoft Certified Trainer in Gurgaon, Indien, mit 13 Jahren Erfahrung, Rajendra arbeitet für eine Vielzahl von großen Unternehmen mit Schwerpunkt auf Performance-Optimierung, Überwachung, Hochverfügbarkeit, und Disaster Recovery-Strategien und Umsetzung. Er ist Autor hunderter maßgeblicher Artikel zu SQL Server, Azure, MySQL, Linux, Power BI, Performance Tuning, AWS / Amazon RDS, Git und verwandten Technologien, die bisher von über 10 Millionen Lesern angesehen wurden.
    Er ist der Schöpfer einer der größten kostenlosen Online-Sammlungen von Artikeln zu einem einzigen Thema, mit seiner 50-teiligen Serie über SQL Server Always On Availability Groups. Basierend auf seinem Beitrag zur SQL Server-Community wurde er 2020 und 2021 bei SQLShack mit verschiedenen Auszeichnungen ausgezeichnet, darunter dem renommierten „Best author of the year“.
    Raj ist immer an neuen Herausforderungen interessiert, wenn Sie also Beratungshilfe zu einem Thema benötigen, das in seinen Schriften behandelt wird, kann er unter Rajendra erreicht [email protected]
    Alle Beiträge von Rajendra Gupta anzeigen

     Rajendra Gupta
    Neueste Beiträge von Rajendra Gupta (alle anzeigen)
    • Verwenden von ARM-Vorlagen zum Bereitstellen von Azure-Containerinstanzen mit SQL Server Linux-Images – 21. Dezember 2021
    • Remotedesktopzugriff für AWS RDS SQL Server mit Amazon RDS Custom – 14. Dezember 2021
    • Speichern von SQL Server-Dateien im persistenten Speicher für Azure-Containerinstanzen – Dezember 10, 2021

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.