SQLShack

acest articol explorează Azure SQL baza de date colaționare configurația și cum să-l schimbe în timp ce importul bazei de date dintr-un fișier BACPAC.

Introducere

colaționarea se referă la o configurație care determină comportamentul motorului bazei de date pentru setul de date de caractere la nivel de server, bază de date sau coloană. SQL Server are o gamă largă de colaționări pentru gestionarea diferențelor de limbă în diferite părți ale lumii. Acesta oferă reguli de sortare, sensibilitate caz pentru tipurile de date Unicode (Nchar, nvarchar, sau ntext) și non-Unicode (char, varchar, nvarchar).

SQL Server acceptă următoarele colaționări.

  • Windows
  • binar: colaționarea binară se termină întotdeauna cu _BIN sau _BIN2
  • SQL Server: aceste nume de colaționare încep întotdeauna cu SQL_

pentru un server SQL tradițional (local), localizarea sistemului de operare determină colaționarea implicită. Cu toate acestea, puteți modifica colaționarea la nivel de server în timpul instalării SQL Server sau modificarea locale OS. Colaționarea implicită SQL Server este SQL_Latin1_General_CP1_CI_AS. Puteți înțelege aceste colaționări în detaliu referindu-vă la colaționare și suport Unicode.

cerințe

acest articol presupune că aveți o înțelegere de bază a bazelor de date Azure SQL. Dacă sunteți începător, vă puteți referi la articolele existente SQL Azure pe SQLShack. Puteți utiliza Microsoft Azure credit gratuit de înscriere la URL-ulhttps://azure.microsoft.com/en-us/free/

Azure SQL baza de date colaționare

Azure SQL DB este o ofertă PaaS gestionate pentru SQL Server cu anumite restricții și limitări pentru efectuarea sarcinilor specifice. La fel ca SQL Server local, Azure DB acceptă, de asemenea, diverse colaționări. Pentru a obține o listă de colaționări acceptate pentru Azure SQL DB, putem interoga sys.fn_helpcollations () funcție. Acesta returnează o listă de 5.508 colaționări. Figura de mai jos vă oferă o privire asupra colaționării și descrierilor.

Lista de colaționare acceptată

listă de colaționare acceptată

pentru Azure SQL DB, puteți alege colaționarea bazei de date în fila Setări suplimentare din crearea bazei de date SQL. După cum se arată mai jos, colaționarea implicită apare ca SQL_Latin1_General_CP1_CI_AS.

putem descompune această colaționare pentru a o înțelege.

  • SQL – se referă la faptul că este o colaționare SQL Server
  • Latin1_General – această parte definește regula de sortare caracter
  • CI-se referă la caz insensibil
  • ca-definește sensibilitatea accent

specificați colaționarea în timp ce creați baza de date

specificați colaționarea în timp ce creați baza de date

puteți face clic pe găsiți o colaționare și căutați colaționarea specifică pe care doriți să o configurați pentru Azure DB.

puteți implementa o bază de date Azure pe un server logic Azure existent. Prin urmare, dacă creați o nouă bază de date Azure utilizând SSMS, puteți defini o anumită colaționare utilizând pagina Opțiuni.

verificați colaționarea în SSMS

dacă creați un Azure SQL DB folosind T-SQL, puteți utiliza cuvântul cheie COLLATE și specificați colaționarea DB necesară.

1
2
3

crearea bazei de date mydemosqldb
COLLATE Latin1_General_100_CS_AS_SC;
merge

trebuie să creați baza de date în colaționarea corectă. Interogările SQL ar putea să nu funcționeze corect din cauza nepotrivirii de colaționare. Cu toate acestea, dacă trebuie să modificați după crearea bazei de date Azure SQL, aceasta nu este simplă. Azure SQL DB nu acceptă modificarea colaționării utilizând ALTER DATABASE COLLATE. Primiți următorul mesaj de eroare dacă încercați să îl modificați.

1
2
3
4

utilizați master
merge
ALTER baza de date Azuredemodatabase
COLLATE SQL_Latin1_General_CP1250_CI_AS

modificați colaționarea folosind funcția de colaționare

  • notă: nu modificați sau setați o colaționare specifică până când nu aveți cerințe specifice. Nu o faceți niciodată direct pe o bază de date de producție. Testați-l bine pe un mediu DB inferior și apoi planul de a continua pentru colaționare producție

să presupunem că sunt implementarea unei baze de date Azure SQL din fișierul BACPAC local. Vrei o colaționare diferită în baza de date țintă.

  • notă: presupun că aveți un Azure SQL DB activ. Dacă nu, puteți utiliza un cont de nivel gratuit pentru implementarea bazei de date de testare
  • pentru acest articol demo, vom face următoarele sarcini:

    • exportați baza de date Azure SQL în format BACPAC
    • instalați Microsoft SQL Server Data-Tier Application Framework (18.1)
    • modificați modelul.configurare fișier xml
    • utilizați Sqlpackage.exe pentru a implementa baza de date Azure cu colaționare actualizată
    • verificați colaționarea bazei de date

    Pasul 1: exportați baza de date Azure SQL în format BACPAC

    în acest pas, exportăm Azure SQL DB în format BACPAC. Putem verifica dacă colaționarea existentă este SQL_Latin1_General_CP1_CI_AS.

    verificați colaționarea existentă

    pentru export, faceți clic dreapta pe baza de date Azure și alegeți aplicația Export Data-tier…

    exportați baza de date Azure SQL în format BACPAC

    exportați baza de date Azure SQL în format BACPAC

    specificați directorul din Salvare pe discul local.

    salvați pe discul local

    verificați, exportați și monitorizați progresul pentru aplicarea nivelului de date în format BACPAC.

    Vizualizați starea

    Vizualizați starea

    Pasul 2: Descărcați Microsoft SQL Server Data-Tier Application Framework (18.1)

    trebuie să descărcați și să instalați cea mai recentă versiune de SSDT. Navigați la URL https://www.microsoft.com/en-us/download/details.aspx?id=57784 și faceți clic pe Descărcare.

    descărcați Microsoft SQL Server Data-Tier Application Framework

    descărcați Microsoft SQL Server Data-Tier Application Framework

    selectați versiunea de fișier MSI necesară și descărcați-o. Este un fișier pachet ușor.

     alege MSI

    alegeți MSI

    urmați expertul de instalare pentru configurarea Microsoft SQL Server Data-tier application framework.

    progresul instalării

    progresul instalării

    mesaj de progres al instalării

    mesaj de progres al instalării

    instalarea terminată

    instalarea terminat

    pas 3: redenumiți. Fișier BACPAC la .ZIP

    în acest pas, redenumim fișierul pachet BACPAC exportat într-un format ZIP. Pentru a face acest lucru, faceți clic dreapta pe BACPAC importat și schimbați extensia în ZIP. Tipul de fișier este comprimat (ZIP) după modificarea extensiei, așa cum se arată în figura de mai jos.

    redenumiți .Fișier BACPAC la .ZIP

    redenumiți .Fișier BACPAC la .ZIP

    vă rugăm să faceți clic dreapta pe fișierul comprimat și extrageți-l. În dosarul extras, găsiți un model.xml, copiază modelul.xml într-un alt director, cum ar fi C:\Temp dosar.

     Model, fișier xml

    model, fișier xml

    deschideți modelul.xml din C:\Temp\Model.xml și modificați colaționarea DB. Următoarea figură prezintă colaționări vechi și noi pentru Azure SQL Database. Aici vom folosi SQL colaționare cu sensibilitate caz.

    modificați colaționarea în model.xml

    modificați colaționarea în model.xml

    Pasul 4: implementați baza de date Azure folosind sqlpackage.exe

    aici, navigați la director C:\Program fișiere\Microsoft SQL Server \ 150 \ DAC \ bin în linia de comandă. Noi folosim sqlpackage.exe pentru a importa BACPAC cu parametrul / ModelFilePath. Suprascrie configurația fișierului model BACPAC cu fișierul specific din acest parametru.

    parametrii necesari:

    • /tsn: specificați Azure SQL Server FQDN în care dorim să importăm acest fișier BACPAC. În cazul meu, este azuredemosqldemo.database.windows.net
    • /tdn: este noul nume de bază de date Azure SQL. Nu puteți importa BACPAC pe o bază de date existentă
    • / tu: specificați numele de utilizator admin pentru a vă conecta cu Azure SQL Server și implementați baza de date
    • / tp: Introduceți parola pentru utilizatorul admin
    • /sf: specificați locația fișierului BACPAC
    • /ModelFilePath: introduceți modelul actualizat.Calea fișierului XML

    anterior, am schimbat extensia fișierului BACPAC în ZIP. Trebuie să-l schimbe înapoi la BACPAC pentru rularea sqlpackage.comanda exe.

    pentru a modifica colaționarea în BACPAC, executați următoarea comandă într-un prompt de comandă.

    sqlpachet.exe / acțiune: Import /tsn:azuredemosqldemo.database.windows.net /tdn:azuredemodatabasenew /tu:sqladmin /tp:******* / sf:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C:\Temp\model.xml

    primiți un mesaj de avertizare:

    „model de suprascriere.xml folosind fișierul ‘C:\Temp\model.xml’. Utilizarea acestei setări poate duce la eșecul de implementare și/sau pierderi neintenționate de date. Această setare intenționează să se utilizeze numai atunci când depanarea problemelor cu publicarea, importul sau generarea de scripturi”

    pornește importul de date, procesează tabele și implementează baza de date pe ea. Timpul de implementare a bazei de date depinde de numărul de tabele, Dimensiunea datelor, indici.

    implementați baza de date utilizând sqlpackage.exe

    în cele din urmă, primiți mesajul – baza de date importată cu succes.

    baza de date importată cu succes

    Pasul 5: verificare

    acum, conectați-vă la baza de date Azure utilizând SSMS și verificați colaționarea bazei de date utilizând următorul script.

    1
    selectați CONVERT (varchar(256), DATABASEPROPERTYEX (‘azuredemodatabasenew’,’collation’));

    după cum se arată mai jos, baza de date nou implementată utilizează colaționarea sql_latin1_general_cp1_cs_as.

    verificați colaționarea în baza de date Azure SQL implementată

    acum, conectați-vă la portalul Azure și vizualizați proprietățile bazei de date. Această bază de date are un nivel general de stabilire a prețurilor Gen5, 2vcores. Nu am specificat niciun nivel de stabilire a prețurilor în timpul implementării bazei de date. Prin urmare, baza de date Azure SQL ia nivelul de stabilire a prețurilor implicit.

     Vizualizați nivelurile de prețuri

    Pasul 6: Implementați baza de date Azure într-un anumit nivel de stabilire a prețurilor

    să presupunem că dorim să implementăm o bază de date cu colaționare modificată și un nivel de stabilire a prețurilor de bază. Pentru această demonstrație, schimbăm colaționarea DB în Latin1_General_BIN. Prin urmare, deschideți modelul.xml și modificați colaționarea așa cum a fost evidențiată înainte.

    schimbare dB colaționare la Latin1_General_BIN.

    de data aceasta specificăm un nou parametru(/p) pentru setarea ediției bazei de date. Acesta instruiește Azure să implementeze baza de date sub nivelul specific de stabilire a prețurilor.

    sqlpachet.exe / acțiune:Import /tsn: azuredemosqldemo.baza de date.windows.net /tdn:azuredemodatabasenew /tu:sqladmin /tp:******* /p:DatabaseEdition=Basic / sf:C:\Temp\azuredemodatabase.BACPAC / ModelFilePath: C:\Temp\model.xml

    implementați pachetul

    odată ce DB este implementat, verificați colaționarea bazei de date. După cum se arată mai jos, utilizează colaționarea Latin1_General_BIN.

    verificați colectarea DB

    verificați DB colaționare

    vă puteți conecta la portalul Azure și verificați nivelul de stabilire a prețurilor ca bază.

    verificați nivelul prețurilor

    • notă: Nu trebuie să modificați DB collation fără cerințe specifice. S-ar putea cauza probleme dacă îl modificați arbitrar

    concluzie

    acest articol explorat implicit Azure SQL baza de date colaționare și procesul să-l schimbe în timp ce importul DB dintr-un fișier BACPAC. Puteți specifica colaționare dorit și implementa baza de date. Cu toate acestea, nu schimbați niciodată colaționarea decât dacă aveți o cerință specifică. Puteți încerca pașii pe propriul test Azure SQL database.

    • autor
    • Postări recente
    Rajendra Gupta
    în calitate de formator certificat MCSA și certificat Microsoft în Gurgaon, India, cu 13 ani de experiență, Rajendra lucrează pentru o varietate de companii mari, concentrându-se pe optimizarea performanței, monitorizarea, disponibilitatea ridicată și strategiile și implementarea de recuperare în caz de dezastru. Este autorul a sute de articole autoritare despre SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git și tehnologii conexe care au fost vizualizate de peste 10 milioane de cititori până în prezent.
    este creatorul uneia dintre cele mai mari colecții online gratuite de articole pe un singur subiect, cu seria sa de 50 de părți pe SQL Server Always On Availability Groups. Pe baza contribuției sale la comunitatea SQL Server, a fost recunoscut cu diverse premii, inclusiv prestigiosul „cel mai bun autor al anului” continuu în 2020 și 2021 la SQLSHACK.
    Raj este întotdeauna interesat de noi provocări, așa că dacă aveți nevoie de ajutor de consultanță cu privire la orice subiect acoperit în scrierile sale, el poate fi contactat la rajendra.gupta16 @ gmail.com
    Vezi toate mesajele de Rajendra Gupta

    Rajendra Gupta
    ultimele postări de Rajendra Gupta (vezi toate)
    • utilizați șabloane ARM pentru a implementa instanțe Azure container cu imagini SQL Server Linux-21 decembrie 2021
    • acces desktop la distanță pentru AWS RDS SQL Server cu Amazon RDS Custom – 14 decembrie 2021
    • stocați fișiere SQL Server în stocare persistentă pentru instanțe Azure Container-decembrie 10, 2021

Lasă un răspuns

Adresa ta de email nu va fi publicată.