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.
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
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.
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;
gå
|
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
gå
ändra databas Azuredemodatabase
Sortera SQL_Latin1_General_CP1250_CI_AS
|
- 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
- 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
- /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
- notera: Du bör inte ändra DB-sortering utan några specifika krav. Det kan orsaka problem om du ändrar det godtyckligt
- författare
- Senaste inlägg
- 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
för den här artikeln demo, vi kommer att göra följande uppgifter:
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.
för export, högerklicka på Azure-databasen och välj Exportera Data – Tier-applikation…
ange katalogen I spara till den lokala disken.
verifiera, exportera och övervaka framsteg för data-tier ansökan i BACPAC-format.
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.
Välj önskad MSI-filversion och ladda ner den. Det är en lätt paketfil.
följ installationsguiden för att konfigurera Microsoft SQL Server Data-tier application framework.
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.
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.
ö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.
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:
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.
i slutet får du meddelandet – framgångsrikt 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.
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.
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.
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
när DB har distribuerats, verifiera databas sorteringen. Som visas nedan använder den Latin1_General_BIN-sortering.
du kan ansluta till Azure portal och verifiera prisnivån som grundläggande.
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.
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