Sqlshack veranderen

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.

ondersteunde Samenstellingslijst

ondersteunde Collatielijst

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

collation opgeven tijdens het aanmaken van database

tijdens het aanmaken van een database

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.

collatie controleren in SSMS

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

Aanpassen sortering met SORTEREN functie

  • 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
  • voor dit artikel demo, zullen we de volgende taken uitvoeren:

    • 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

    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.

    Controleer bestaande collatie

    voor export, klik met de rechtermuisknop op de Azure-database en kies Data-tier-toepassing exporteren…

    Exporteer de Azure SQL database in BACPAC formaat

    Exporteer de Azure SQL database in BACPAC formaat

    specificeer de map in de opslaan op de lokale schijf.

    opslaan op lokale schijf

    controleer, Exporteer en monitor de voortgang voor Data-tier applicatie in BACPAC-formaat.

    status weergeven

    Status

    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.

    Download Microsoft SQL Server Data-Tier Application Framework

    Download Microsoft SQL Server Data-Tier Application Framework

    Selecteer de gewenste versie van het MSI-bestand en download het. Het is een lichtgewicht pakketbestand.

    kies MSI

    kies MSI

    Volg de installatiewizard voor het instellen van het Microsoft SQL Server data-tier application framework.

    Installatievoortgang

    voortgang van installatie

    Voortgangsbericht voor installatie

    Voortgangsbericht voor installatie

    installatie voltooid

    installatie voltooid

    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.

    hernoem de .BACPAC file naar .ZIP

    hernoem de .BACPAC file naar .ZIP

    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.

    Model, xml-bestand

    Model, xml-bestand

    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.

    collatie in model wijzigen.xml

    collatie in model wijzigen.XML

    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:

    • /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

    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.

    implementeer database met sqlpackage.exe

    aan het eind krijgt u het bericht – met succes geïmporteerde database.

    succesvolle 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.

    controleer de collatie in de geà mplementeerde Azure SQL-Database

    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.

     bekijk prijsniveaus

    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.

    wijzig DB collation naar Latin1_General_BIN.

    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

    implementeer pakket

    controleer de database-collatie zodra de DB is geïmplementeerd. Zoals hieronder getoond, gebruikt het Latin1_General_BIN collation.

    DB-collatie verifiëren

    controleer DB collation

    u kunt verbinding maken met de Azure-portal en het prijsniveau als basis verifiëren.

    verifieer het prijsniveau

    • opmerking: U mag DB collation niet wijzigen zonder specifieke vereisten. Het kan problemen veroorzaken als u het willekeurig wijzigt

    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.

    • auteur
    • recente berichten
    Rajendra Gupta
    als MCSA certified en Microsoft Certified Trainer in Gurgaon, India, met 13 jaar ervaring, Rajendra werkt voor een verscheidenheid van grote bedrijven gericht op prestatie-optimalisatie, monitoring, hoge beschikbaarheid, en disaster recovery strategieën en implementatie. Hij is de auteur van honderden gezaghebbende artikelen over SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git, en aanverwante technologieën die zijn bekeken door meer dan 10m lezers tot nu toe.
    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

    Rajendra Gupta
    Laatste bericht door Rajendra Gupta (zie alle)
    • 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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.