Lezen in het Engels

Delen via


De databasecollatie instellen of wijzigen

van toepassing op:SQL ServerAzure SQL Managed Instance

In dit artikel wordt beschreven hoe u de database sortering instelt of wijzigt met behulp van SQL Server Management Studio (SSMS) of Transact-SQL.

Als er geen databasesortering is opgegeven, wordt de serversortering gebruikt.

Aanbevelingen

U vindt de ondersteunde sorteringsnamen in Windows-sorteringsnaam en SQL Server-sorteringsnaam; of u kunt de sys.fn_helpcollations systeemfunctie gebruiken.

Wanneer u de sortering van de database wijzigt, wijzigt u:

  • Alle char, varchar, text, nchar, nvarcharof ntext kolommen in systeemtabellen worden gewijzigd in de nieuwe sortering.

  • Alle bestaande tekens, varchar, tekst, nchar, nvarcharof ntext parameters en scalaire retourwaarden voor opgeslagen procedures en door de gebruiker gedefinieerde functies worden gewijzigd in de nieuwe sortering.

  • De teken, varchar, tekst, nchar, nvarcharof ntext systeemgegevenstypen, evenals alle door de gebruiker gedefinieerde gegevenstypen die op deze systeemgegevenstypen zijn gebaseerd, worden gewijzigd in de nieuwe standaardsortering.

U kunt de sortering wijzigen van alle nieuwe objecten die zijn gemaakt in een gebruikersdatabase met behulp van de COLLATE component van de instructie ALTER DATABASE. Deze instructie verandert niet de sortering van de kolommen in bestaande door de gebruiker gedefinieerde tabellen. Deze kunnen worden gewijzigd met behulp van de COLLATE component van ALTER TABLE.

Machtigingen

Als u een nieuwe database wilt maken, hebt u de machtiging CREATE DATABASE in de master-database of de CREATE ANY DATABASEof ALTER ANY DATABASE machtiging nodig.

Als u de sortering van een bestaande database wilt wijzigen, hebt u de ALTER machtiging voor de database nodig.

De databasesortering instellen of wijzigen

U kunt de databasesortering instellen of wijzigen met behulp van SQL Server Management Studio (SSMS) of Transact-SQL (T-SQL).

U kunt de sortering voor een nieuwe database opgeven of de sortering voor een bestaande database bijwerken met behulp van SQL Server Management Studio (SSMS).

Open in SQL Server Management Studio Objectverkenner, maak verbinding met een exemplaar van de SQL Server Database Engine, vouw dat exemplaar uit en vouw vervolgens Databasesuit:

  • Voor een nieuwe database: klik met de rechtermuisknop op Databases en selecteer Nieuwe database. Als u de standaardsortering niet wilt, selecteert u de opties pagina en selecteert u een sortering in de vervolgkeuzelijst Sortering.
  • Voor een bestaande database: klik met de rechtermuisknop op de gewenste database en selecteer eigenschappen. Selecteer de pagina Opties en selecteer een collatie in de vervolgkeuzelijst Collatie.

Gegevens na het wijzigen van de sortering

Belangrijk

Het wijzigen van de sortering van een database of afzonderlijke kolommen wijzigt niet de onderliggende gegevens die al in bestaande tabellen zijn opgeslagen. Tenzij uw toepassing expliciet gegevensconversie en vergelijking tussen verschillende sorteringen afhandelt, wordt u aangeraden bestaande gegevens in de database over te schakelen naar de nieuwe sortering. Hierdoor wordt het risico verwijderd dat toepassingen mogelijk gegevens onjuist wijzigen, wat resulteert in mogelijke verkeerde resultaten of gegevensverlies op de achtergrond.

Wanneer een databasesortering wordt gewijzigd, nemen alleen nieuwe tabellen de nieuwe databasesortering standaard over. Er zijn verschillende alternatieven om bestaande gegevens te converteren naar de nieuwe sortering:

  • Gegevens ter plaatse converteren. Als u de sortering voor een kolom in een bestaande tabel wilt wijzigen, raadpleegt u Kolomsortering instellen of wijzigen. Deze bewerking is eenvoudig te implementeren, maar kan een blokkerend probleem worden voor grote tabellen en drukke toepassingen. Zie het volgende voorbeeld voor een in-place conversie van de kolom MyString naar een nieuwe sortering:

    SQL
    ALTER TABLE dbo.MyTable
        ALTER COLUMN MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8;
    
  • Kopieer gegevens naar nieuwe tabellen die gebruikmaken van de nieuwe sortering en vervang oorspronkelijke tabellen in dezelfde database. Maak een nieuwe tabel in de huidige database die de databasesortering overneemt, kopieer de gegevens tussen de oude tabel en de nieuwe tabel, zet de oorspronkelijke tabel neer en wijzig de naam van de nieuwe tabel in de naam van de oorspronkelijke tabel. Dit is een snellere bewerking dan een in-place conversie, maar kan een uitdaging worden bij het verwerken van complexe schema's met afhankelijkheden zoals beperkingen van refererende sleutels, beperkingen van primaire sleutels en triggers. Er is ook een definitieve gegevenssynchronisatie nodig tussen de originele en de nieuwe tabel voor de definitieve afsluiting, als gegevens nog steeds door applicaties worden gewijzigd. Zie het volgende voorbeeld voor een "kopiëren en vervangen"-conversie van de MyString-kolom naar een nieuwe collatie:

    SQL
    CREATE TABLE dbo.MyTable2 (MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8);
    
    INSERT INTO dbo.MyTable2
    SELECT * FROM dbo.MyTable;
    
    DROP TABLE dbo.MyTable;
    
    EXEC sp_rename 'dbo.MyTable2', 'dbo.MyTable';
    
  • Kopieer gegevens naar een nieuwe database die gebruikmaakt van de nieuwe sortering en vervang de oorspronkelijke database. Maak een nieuwe database met behulp van de nieuwe sortering en draag de gegevens van de oorspronkelijke database over via hulpprogramma's zoals Integration Services of de wizard Importeren/exporteren in SQL Server Management Studio. Dit is een eenvoudigere benadering voor complexe schema's. Er is ook een definitieve gegevenssynchronisatie tussen de oorspronkelijke en de nieuwe databases nodig voordat de definitieve afsluiting, doordat de gegevens door middel van toepassingen worden gewijzigd.

Beperkingen

  • Windows Unicode-sorteringen kunnen alleen worden gebruikt met de COLLATE-component om sorteringen toe te passen op de nchar, nvarcharen ntext gegevenstypen op kolomniveau en expressieniveau. Ze kunnen niet worden gebruikt met de COLLATE-component om de sortering van een database of serverinstantie te wijzigen.

  • Als de opgegeven sortering of de sortering die wordt gebruikt door het object waarnaar wordt verwezen, een codepagina gebruikt die niet wordt ondersteund door Windows, geeft de database-engine een fout weer.

  • Sortering op serverniveau in Azure SQL Managed Instance kan worden opgegeven wanneer het exemplaar wordt gemaakt en kan later niet meer worden gewijzigd. Meer informatie vindt u in De serversortering instellen of wijzigen.

Belangrijk

De ALTER DATABASE COLLATE-instructie wordt niet ondersteund in Azure SQL Database. Geef databasesortering en catalogussortering op tijdens CREATE DATABASE.