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.
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
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.
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
|
- 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
- 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
- / 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
- Hinweis: Sie sollten die DB-Sortierung nicht ohne besondere Anforderungen ändern. Es kann zu Problemen führen, wenn Sie es willkürlich ändern
- Autor
- Neueste Beiträge
- 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
Für diese Artikeldemo führen wir die folgenden Aufgaben aus:
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 .
Klicken Sie zum Exportieren mit der rechten Maustaste auf die Azure-Datenbank und wählen Sie Datenschichtanwendung exportieren…
Geben Sie das Verzeichnis im Feld Auf lokaler Festplatte speichern an.
Überprüfen, exportieren und überwachen Sie den Fortschritt für Datenschichtanwendungen im BACPAC-Format.
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.
Wählen Sie die gewünschte MSI-Dateiversion aus und laden Sie sie herunter. Es ist eine leichte Paketdatei.
Folgen Sie dem Installationsassistenten zum Einrichten des Microsoft SQL Server Data-Tier Application Framework.
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.
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.
Ö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.
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:
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.
Am Ende erhalten Sie die Meldung – 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.
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.
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.
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
Überprüfen Sie nach der Bereitstellung der Datenbank die Sortierung der Datenbank. Wie unten gezeigt, wird die Kollatierung Latin1_General_BIN verwendet.
Sie können eine Verbindung zum Azure-Portal herstellen und die Preisstufe als Basic überprüfen.
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.
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