dit artikel onderzoekt de Azure SQL Database Collation configuratie en hoe deze te veranderen tijdens het importeren van de database uit een BACPAC bestand.
Inleiding
de collatie verwijst naar een configuratie die het gedrag van de databasemotor bepaalt voor tekenset op een server -, database-of kolomniveau. SQL Server heeft een breed scala aan collaties voor het omgaan met taalverschillen in verschillende delen van de wereld. Het biedt sorteerregels, hoofdlettergevoeligheid voor Unicode-gegevenstypen (nchar, nvarchar of ntext) en niet-Unicode (char, varchar, nvarchar).
SQL Server ondersteunt de volgende collaties.
- Windows
- binair: de binaire collatie eindigt altijd met _BIN of _BIN2
- SQL Server: Deze collatienamen beginnen altijd met SQL_
voor een traditionele (on-premises) SQL Server bepaalt de lokale besturingssysteem de standaard collatie. U kunt echter de collatie op serverniveau wijzigen tijdens de installatie van SQL Server of de OS-taalinstelling wijzigen. De standaard SQL Server collation is SQL_Latin1_General_CP1_CI_AS. U kunt deze collaties in detail begrijpen door te verwijzen naar Collation en Unicode-ondersteuning.
vereisten
dit artikel veronderstelt dat u een basiskennis hebt van Azure SQL Databases. Als je een beginner bent, kun je verwijzen naar bestaande artikelen SQL Azure op SQLShack. U kunt gebruik maken van Microsoft Azure free credit door u aan te melden op URL https://azure.microsoft.com/en-us/free/
Azure SQL Database Collation
Azure SQL DB is een beheerde Paas-aanbod voor SQL Server met bepaalde beperkingen en beperkingen voor het uitvoeren van specifieke taken. Net als de lokale SQL Server ondersteunt Azure DB ook verschillende collaties. Om een lijst van ondersteunde collaties voor Azure SQL DB te krijgen, kunnen we de sys opvragen.fn_helpcollations () functie. Het retourneert een lijst van 5.508 collaties. De onderstaande figuur geeft u een glimp van de collatie en beschrijvingen.
voor Azure SQL DB kunt u databasecollatie kiezen op het tabblad Aanvullende instellingen van het aanmaken van SQL-Database. Zoals hieronder getoond, verschijnt de standaard collatie als SQL_Latin1_General_CP1_CI_AS.
we kunnen deze collatie opsplitsen om het te begrijpen.
- SQL-het verwijst naar een SQL Server collation
- Latin1_algemeen – dit deel definieert de tekensorteerregel
- CI-het verwijst naar hoofdletterongevoelige
- als-het definieert accentgevoeligheid
kunt u klikken op een collatie zoeken en zoeken naar de specifieke collatie die u wilt configureren voor Azure DB.
u kunt een Azure-database implementeren op een bestaande Azure logische server. Als u daarom een nieuwe Azure-database maakt met behulp van SSM ‘ s, kunt u een specifieke collatie definiëren met behulp van de pagina Opties.
als u een azuurblauwe SQL DB maakt met T-SQL, kunt u het trefwoord collatie gebruiken en de vereiste DB collatie opgeven.
1
2
3
|
DATABASE aanmaken MyDemoSQLDB
LATIN1_GENERAL_100_CS_AS_SC COLLATE;
GO
|
u moet de database in de juiste collatie aanmaken. Uw SQL-query ‘ s werken mogelijk niet goed door een verkeerde collatie. Echter, als je nodig hebt om te wijzigen na het maken van de Azure SQL Database, het is niet eenvoudig. Azure SQL DB biedt geen ondersteuning voor het wijzigen van collatie met behulp van de ALTER DATABASE COLLATE. U krijgt de volgende foutmelding als u probeert om het te veranderen.
1
2
3
4
|
Gebruik de master
naar
ALTER DATABASE Azuredemodatabase
SORTEREN SQL_Latin1_General_CP1250_CI_AS
|
- Opmerking: wijzig of een specifieke sortering totdat u specifieke wensen hebt. Doe het nooit direct in een productiedatabase. Test het grondig op een lagere DB-omgeving en plan dan verder te gaan voor productievergelijking
stel dat u een Azure SQL-Database implementeert vanuit het on-premise BACPAC-bestand. U wilt een andere collatie in de doeldatabase.
- opmerking: Ik neem aan dat u een actieve Azure SQL DB hebt. Zo niet, dan kunt u een gratis tier-account gebruiken voor het implementeren van uw testdatabase
- Exporteer de Azure SQL-database in BACPAC-formaat
- Installeer Microsoft SQL Server Data-Tier Application Framework (18.1)
- Modify model.XML-bestandsconfiguratie
- gebruik sqlpackage.exe om de Azure-database met bijgewerkte collatie
- te implementeren controleer de database collatie
- /tsn: specificeer de Azure SQL Server FQDN waarin we dit BACPAC bestand willen importeren. In mijn geval is het azuredemosqldemo.database.windows.net
- / tdn: het is de nieuwe Azure SQL Database naam. U kunt BACPAC niet importeren in een bestaande database
- / tu: Geef de admin gebruikersnaam op om verbinding te maken met Azure SQL Server en implementeer de database
- / tp: Voer het wachtwoord in voor de beheerder
- / sf: Geef de BACPAC-bestandslocatie
- / ModelFilePath: voer het bijgewerkte model in.XML-bestandspad
- opmerking: U mag DB collation niet wijzigen zonder specifieke vereisten. Het kan problemen veroorzaken als u het willekeurig wijzigt
- auteur
- recente berichten
- Gebruik de ARM templates te implementeren Azure container exemplaren met SQL Server Linux images – December 21, 2021
- bureaublad op Afstand toegang voor AWS RDS SQL Server met Amazon RDS-Aangepaste – December 14, 2021
- het Opslaan van SQL Server bestanden in Permanente Opslag voor Azure Container Gevallen – December 10, 2021
voor dit artikel demo, zullen we de volgende taken uitvoeren:
Stap 1: Exporteer de Azure SQL-database in BACPAC-formaat
in deze stap exporteren we Azure SQL DB in het BACPAC-formaat. We kunnen controleren of de bestaande collatie sql_latin1_general_cp1_ci_as is.
voor export, klik met de rechtermuisknop op de Azure-database en kies Data-tier-toepassing exporteren…
specificeer de map in de opslaan op de lokale schijf.
controleer, Exporteer en monitor de voortgang voor Data-tier applicatie in BACPAC-formaat.
Stap 2: Download Microsoft SQL Server Data-Tier Application Framework (18.1)
u moet de nieuwste versie van SSDT downloaden en installeren. Navigeer naar URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 en klik op Downloaden.
Selecteer de gewenste versie van het MSI-bestand en download het. Het is een lichtgewicht pakketbestand.
Volg de installatiewizard voor het instellen van het Microsoft SQL Server data-tier application framework.
Stap 3: hernoem de. BACPAC file naar .ZIP
in deze stap hernoemen we het geëxporteerde BACPAC pakketbestand naar een ZIP-formaat. Om dit te doen, klik met de rechtermuisknop op de geïmporteerde BACPAC en verander de extensie naar ZIP. Het bestandstype wordt gecomprimeerd (gezipt) na het wijzigen van de extensie, zoals weergegeven in de onderstaande figuur.
klik met de rechtermuisknop op het gecomprimeerde bestand en pak het uit. In de uitgepakte map vindt u een model.XML, kopieer het model.xml naar een andere map zoals de C:\Temp map.
Open het model.xml van C:\Temp\Model.xml en wijzig de DB collation. De volgende figuur toont oude en nieuwe collaties voor Azure SQL Database. Hier gebruiken we SQL-collatie met hoofdlettergevoeligheid.
Stap 4: Implementeer Azure-Database met sqlpackage.exe
hier, navigeer naar map C:\Program bestanden \ Microsoft SQL Server \ 150 \ DAC \ bin in de opdrachtprompt. We gebruiken sqlpackage.exe om de BACPAC te importeren met de parameter / ModelFilePath. Het overschrijft de BACPAC model bestand configuratie met het specifieke bestand in deze parameter.
vereiste parameters:
eerder hebben we de extensie van het BACPAC-bestand gewijzigd in ZIP. We moeten het terug veranderen naar BACPAC voor het uitvoeren van het sqlpackage.exe Commando.
om de collatie in de BACPAC te wijzigen, voert u het volgende commando uit in een opdrachtprompt.
sqlpackage.exe / actie: Import /tsn:azuredemosqldemo.database.windows.net / tdn:azuredemodatabasenew / tu: sqladmin /TP:****** /SF: C:\Temp\azuredemodatabase.BACPAC / Modelfilepad: C: \ Temp \ model.xml
u krijgt een waarschuwingsbericht:
” overschrijdend model.xml met bestand ‘C:\Temp\model.xml”. Het gebruik van deze instelling kan leiden tot implementatiefouten en/of onbedoeld gegevensverlies. Deze instelling is bedoeld om alleen te gebruiken bij het oplossen van problemen met publiceren, importeren of scriptgeneratie”
het Start data importeren, verwerken tabellen en implementeert database op het. De implementatietijd van de database is afhankelijk van het aantal tabellen, gegevensgrootte en indexen.
aan het eind krijgt u het bericht – met succes geïmporteerde database.
Stap 5: verificatie
Maak nu verbinding met de Azure-Database met behulp van SSMS en controleer de database-collatie met behulp van het volgende script.
1
|
selecteer CONVERT (varchar(256), DATABASEPROPERTYEX (‘azuredemodatabasenew’, ‘collation’));
|
zoals hieronder getoond, gebruikt de nieuw geà mplementeerde database collation SQL_Latin1_General_CP1_CS_AS.
log nu in op het Azure-portaal en bekijk de eigenschappen van de database. Deze database heeft een algemene Gen5, 2vcores prijsniveau. We hebben geen prijsniveau gespecificeerd tijdens het implementeren van de database. Daarom neemt de Azure SQL database het standaard prijsniveau.
Stap 6: Implementeer Azure-database in een specifieke prijsklasse
stel dat we een database met gewijzigde collatie en een basisprijsklasse willen implementeren. Voor deze demo veranderen we de DB collation naar Latin1_General_BIN. Open daarom het model.xml en wijzig de collatie zoals eerder gemarkeerd.
deze keer specificeren we een nieuwe parameter(/p) voor het instellen van de database-editie. Het instrueert Azure om de database te implementeren onder de specifieke prijsniveau.
sqlpackage.exe / Action: Import / tsn: azuredemosqldemo.database.windows.net / tdn:azuredemodatabasenew / tu: sqladmin /TP:******* /p:Databasedition=Basic /SF: C:\Temp\azuredemodatabase.BACPAC / Modelfilepad: C: \ Temp \ model.XML
controleer de database-collatie zodra de DB is geïmplementeerd. Zoals hieronder getoond, gebruikt het Latin1_General_BIN collation.
u kunt verbinding maken met de Azure-portal en het prijsniveau als basis verifiëren.
conclusie
dit artikel onderzocht standaard Azure SQL Database collation en het proces om het te wijzigen tijdens het importeren van DB uit een BACPAC-bestand. U kunt uw gewenste collatie opgeven en de database implementeren. Wijzig de collatie echter nooit, tenzij u een specifieke eis hebt. U kunt de stappen proberen op uw eigen test Azure SQL database.
hij is de maker van een van de grootste gratis online collecties van artikelen over een enkel onderwerp, met zijn 50-delige serie op SQL Server Always On Availability Groups. Op basis van zijn bijdrage aan de SQL Server community, werd hij in 2020 en 2021 bij SQLShack onderscheiden met verschillende prijzen, waaronder de prestigieuze “beste auteur van het jaar”.Raj is altijd geïnteresseerd in nieuwe uitdagingen, dus als je advies nodig hebt over een onderwerp dat in zijn geschriften wordt behandeld, kan hij worden bereikt in [email protected]
Bekijk alle berichten van Rajendra Gupta