SQLShack

den här artikeln utforskar Azure SQL Database-Sorteringskonfigurationen och hur du ändrar den när du importerar databasen från en BACPAC-fil.

Inledning

sorteringen avser en konfiguration som bestämmer databasmotorns beteende för teckendatauppsättning på en server -, databas-eller kolumnnivå. SQL Server har ett brett utbud av sorteringar för hantering av språkskillnader i olika delar av världen. Det ger sorteringsregler, skiftlägeskänslighet för Unicode – datatyper (nchar, nvarchar eller ntext) och icke-Unicode (char, varchar, nvarchar).

SQL Server stöder följande sorteringar.

  • Windows
  • binär: den binära sorteringen slutar alltid med antingen _BIN eller _BIN2
  • SQL Server: dessa sorteringsnamn börjar alltid med SQL_

för en traditionell (lokal) SQL-Server bestämmer operativsystemets språk standard sorteringen. Du kan dock ändra sorteringen på servernivå under SQL Server-installationen eller ändra OS-platsen. Standard SQL Server-sortering är SQL_Latin1_General_CP1_CI_AS. Du kan förstå dessa sorteringar i detalj genom att hänvisa till sortering och Unicode-stöd.

krav

den här artikeln förutsätter att du har en grundläggande förståelse för Azure SQL-databaser. Om du är nybörjare kan du hänvisa till befintliga artiklar SQL Azure på SQLShack. Du kan använda Microsoft Azure free credit genom att registrera dig på URL https://azure.microsoft.com/en-us/free/

Azure SQL Database Collation

Azure SQL DB är ett hanterat PaaS-erbjudande för SQL Server med vissa begränsningar och begränsningar för att utföra specifika uppgifter. Liksom lokal SQL Server stöder Azure DB också olika sorteringar. För att få en lista över stödda sorteringar för Azure SQL DB kan vi fråga sys.fn_helpcollations () funktion. Den returnerar en lista med 5 508 sorteringar. Nedanstående figur ger dig en glimt av sorteringen och beskrivningarna.

 stödd Sorteringslista

Sorteringslista som stöds

för Azure SQL DB kan du välja databas sortering på fliken Ytterligare inställningar för att skapa SQL-databas. Som visas nedan visas standard sorteringen som SQL_Latin1_General_CP1_CI_AS.

vi kan bryta ner denna sortering för att förstå den.

  • SQL-det hänvisar till att det är en SQL Server-sortering
  • Latin1_General – den här delen definierar teckensorteringsregeln
  • CI-den hänvisar till skiftlägeskänslig
  • som-den definierar accentkänslighet

ange sortering när du skapar databas

ange sortering när du skapar databas

du kan klicka på hitta en sortering och leta efter den specifika sorteringen du vill konfigurera för Azure DB.

du kan distribuera en Azure-databas på en befintlig Azure logical server. Om du skapar en ny Azure-databas med SSMS kan du därför definiera en specifik sortering med alternativsidan.

kontrollera sortering i SSMS

om du skapar en Azure SQL DB med T-SQL kan du använda SORTERINGSNYCKELN och ange önskad DB-sortering.

1
2
3

skapa databas MyDemoSQLDB
Sortera Latin1_General_100_CS_AS_SC;

du måste skapa databasen i rätt sortering. Dina SQL-frågor kanske inte fungerar korrekt på grund av sorteringsfel. Men om du behöver ändra efter att ha skapat Azure SQL-databasen är det inte enkelt. Azure SQL DB stöder inte att ändra sortering med hjälp av Alter DATABASE COLLATE. Du får följande felmeddelande om du försöker ändra det.

1
2
3
4

använd master
ändra databas Azuredemodatabase
Sortera SQL_Latin1_General_CP1250_CI_AS

ändra sortering med hjälp av sorteringsfunktionen

  • Obs!: ändra eller ställ inte in en specifik sortering förrän du har specifika krav. Gör det aldrig direkt i en produktionsdatabas. Testa det noggrant på en lägre DB-miljö och planera sedan att fortsätta för produktionssamling

anta att du distribuerar en Azure SQL-databas från den lokala BACPAC-filen. Du vill ha en annan sortering i måldatabasen.

  • OBS: Jag antar att du har en aktiv Azure SQL DB. Om inte, kan du använda ett gratis nivåkonto för att distribuera din testdatabas
  • för den här artikeln demo, vi kommer att göra följande uppgifter:

    • exportera Azure SQL-databasen i BacPac-format
    • installera Microsoft SQL Server Data-Tier Application Framework (18.1)
    • ändra modell.xml – filkonfiguration
    • använd sqlpackage.exe för att distribuera Azure-databasen med uppdaterad sortering
    • verifiera databasens sortering

    Steg 1: exportera Azure SQL-databasen i BacPac-format

    i det här steget exporterar vi Azure SQL DB i BacPac-formatet. Vi kan verifiera att den befintliga sorteringen är SQL_Latin1_General_CP1_CI_AS.

     kontrollera befintlig sortering

    för export, högerklicka på Azure-databasen och välj Exportera Data – Tier-applikation…

    exportera Azure SQL-databasen i BacPac-format

    exportera Azure SQL-databasen i BacPac-format

    ange katalogen I spara till den lokala disken.

     Spara till lokal disk

    verifiera, exportera och övervaka framsteg för data-tier ansökan i BACPAC-format.

     Visa status

    Visa status

    steg 2: Hämta Microsoft SQL Server Data-Tier Application Framework (18.1)

    du måste hämta och installera den senaste versionen av SSDT. Navigera till URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 och klicka på Ladda ner.

    ladda ner Microsoft SQL Server Data - Tier applikationsramverk

    ladda ner Microsoft SQL Server Data - Tier Application Framework

    Välj önskad MSI-filversion och ladda ner den. Det är en lätt paketfil.

     Välj MSI

    Välj MSI

    följ installationsguiden för att konfigurera Microsoft SQL Server Data-tier application framework.

    installationsförlopp

    Installation framsteg

    meddelande om framsteg i installationen

    meddelande om framsteg i installationen

    installationen klar

    installationen klar

    steg 3: Byt namn på. BACPAC-fil till .ZIP

    i det här steget byter vi namn på den exporterade BACPAC-paketfilen till ett ZIP-format. För att göra det, högerklicka på den importerade BACPAC och ändra tillägget till ZIP. Filtypen komprimeras (zippas) efter ändring av tillägget, som visas i nedanstående figur.

     Byt namn på .BACPAC-fil till .ZIP

    Byt namn på .BACPAC-fil till .ZIP

    högerklicka på den komprimerade filen och extrahera den. I den extraherade mappen hittar du en modell.xml, kopiera modellen.xml till en annan katalog som C:\Temp mapp.

     modell, xml-fil

    Model, xml-fil

    öppna modellen.xml från C:\Temp\Model.xml och ändra DB sortering. Följande bild visar gamla och nya sorteringar för Azure SQL Database. Här använder vi SQL-sortering med skiftlägeskänslighet.

     ändra sortering i Modell.xml

    ändra sortering i Modell.xml

    steg 4: distribuera Azure-databasen med sqlpackage.exe

    här, navigera till katalogen C:\Program filer \ Microsoft SQL Server\150 \ DAC \ bin i kommandotolken. Vi använder sqlpackage.exe för att importera BACPAC med parametern / ModelFilePath. Det åsidosätter BacPac – modellfilkonfigurationen med den specifika filen i den här parametern.

    obligatoriska parametrar:

    • /tsn: ange Azure SQL Server FQDN där vi vill importera denna BACPAC-fil. I mitt fall är det azuredemosqldemo.database.windows.net
    • /tdn: det är det nya Azure SQL-databasnamnet. Du kan inte importera BACPAC på en befintlig databas
    • / tu: ange admin användarnamn för att ansluta till Azure SQL Server och distribuera databasen
    • /tp: Ange lösenordet för administratörsanvändaren
    • /sf: ange BACPAC-filplatsen
    • /ModelFilePath: ange den uppdaterade modellen.XML-filväg

    tidigare ändrade vi utvidgningen av BACPAC-filen till ZIP. Vi måste byta tillbaka till BACPAC för att köra sqlpackage.exe-kommando.

    för att ändra sorteringen i BACPAC, kör följande kommando i en kommandotolk.

    sqlpackage.exe / åtgärd: importera /tsn:azuredemosqldemo.database.windows.net / tdn:azuredemodatabasenew /tu:sqladmin /tp:******* / sf:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C:\Temp \ modell.xml

    du får ett varningsmeddelande:

    ” övergripande modell.xml använder fil ’C:\Temp\model.xml’. Användning av denna inställning kan leda till distributionsfel och/eller oavsiktlig dataförlust. Denna inställning avser att använda endast vid felsökning av problem med publicera, importera eller skriptgenerering”

    det startar dataimport, process tabeller och distribuerar databas på den. Databasdistributionstiden beror på antalet tabeller, datastorlek, index.

    distribuera databas med sqlpackage.exe

    i slutet får du meddelandet – framgångsrikt Importerad databas.

     framgångsrik importerad databas

    Steg 5: verifiering

    Anslut nu till Azure Database med SSMS och verifiera databasens sortering med följande skript.

    1
    välj Konvertera (varchar (256), DATABASEPROPERTYEX (’azuredemodatabasenew’, ’sortering’));

    som visas nedan använder den nyligen distribuerade databasen sortering SQL_Latin1_General_CP1_CS_AS.

    verifiera sorteringen i distribuerad Azure SQL Database

    logga nu in på Azure portal och visa databasegenskaperna. Denna databas har en generell Gen5, 2vcores prissättning tier. Vi angav inte någon prisnivå när vi distribuerade databasen. Därför tar Azure SQL-databasen standardprisnivån.

     Visa prisnivåer

    steg 6: Distribuera Azure database i en specifik prisnivå

    anta att vi vill distribuera en databas med modifierad sortering och en grundläggande prisnivå. För denna demo ändrar vi DB-sorteringen till Latin1_General_BIN. Öppna därför modellen.xml och ändra sorteringen som markerad tidigare.

    ändra DB-sortering till Latin1_General_BIN.

    den här gången anger vi en ny parameter(/p) för att ställa in databasutgåvan. Det instruerar Azure att distribuera databasen under den specifika prissättningsnivån.

    sqlpackage.exe /åtgärd:importera / tsn:azuredemosqldemo.databastabell.windows.net / tdn:azuredemodatabasenew /tu:sqladmin /tp:******* /p:DatabaseEdition=grundläggande / sf:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C:\Temp \ modell.xml

    distribuera paket

    när DB har distribuerats, verifiera databas sorteringen. Som visas nedan använder den Latin1_General_BIN-sortering.

    verifiera DB-sortering

    verifiera DB-sortering

    du kan ansluta till Azure portal och verifiera prisnivån som grundläggande.

    verifiera prisnivå

    • notera: Du bör inte ändra DB-sortering utan några specifika krav. Det kan orsaka problem om du ändrar det godtyckligt

    slutsats

    den här artikeln utforskade standard Azure SQL-databas sortering och processen för att ändra det när du importerar DB från en BACPAC-fil. Du kan ange önskad sortering och distribuera databasen. Ändra dock aldrig sorteringen om du inte har ett specifikt krav. Du kan prova stegen i din egen test Azure SQL-databas.

    • författare
    • Senaste inlägg
    Rajendra Gupta
    som MCSA-certifierad och Microsoft-certifierad tränare i Gurgaon, Indien, med 13 års erfarenhet, arbetar Rajendra för en mängd stora företag med fokus på prestationsoptimering, övervakning, hög tillgänglighet och katastrofåterställningsstrategier och implementering. Han är författare till hundratals auktoritativa artiklar om SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git och relaterad teknik som hittills har visats av över 10 miljoner läsare.
    han är skaparen av en av de största gratis online samlingar av artiklar om ett enda ämne, med sin 50-del serie på SQL Server alltid på Tillgänglighetsgrupper. Baserat på hans bidrag till SQL Server-communityn har han erkänts med olika utmärkelser inklusive den prestigefyllda ”årets bästa författare” kontinuerligt 2020 och 2021 på SQLShack.
    Raj är alltid intresserad av nya utmaningar så om du behöver konsulthjälp om något ämne som omfattas av hans skrifter kan han nås på rajendra.Gupta 16 @ gmail.com
    Visa alla inlägg av Rajendra Gupta

    Rajendra Gupta
    Senaste inlägg av Rajendra Gupta (se alla)
    • använd ARM-mallar för att distribuera Azure container instances med SQL Server Linux – bilder-21 December 2021
    • Remote desktop access för AWS RDS SQL Server med Amazon RDS Custom-14 December 2021
    • lagra SQL Server-filer i beständig lagring för Azure Container Instances-December 10, 2021

Lämna ett svar

Din e-postadress kommer inte publiceras.