Megosztás a következőn keresztül:


Az adatbázis-rendezés beállítása vagy módosítása

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Ez a cikk ismerteti, hogyan lehet beállítani vagy módosítani az adatbázis rendezését SQL Server Management Studio (SSMS) vagy Transact-SQL használatával.

Ha nincs megadva adatbázis-rendezés, a szerver rendezési beállítása,, kerül alkalmazásra.

Ajánlások

A támogatott kollációs neveket megtalálhatja a(z) Windows kollációs név és a(z) SQL Server kollációs névrészben, illetve használhatja a sys.fn_helpcollations rendszerfüggvényt.

Az adatbázis-rendezés módosításakor a következőt kell módosítania:

  • Minden karakter, varchar, szöveg, nchar, nvarcharvagy ntext oszlop az rendszertáblákban az új kiosztásra módosul.

  • Minden meglévő karakter, varchar, szöveges, nchar, nvarcharvagy ntext paraméterek és skaláris visszatérési értékek a tárolt eljárások és a felhasználó által definiált függvények esetében az új rendezésre módosulnak.

  • A karakter, varchar, szöveg, nchar, nvarcharvagy ntext rendszeradattípus, valamint az ezen rendszeradattípusokon alapuló összes felhasználó által definiált adattípus az új alapértelmezett rendezésre módosul.

A felhasználói adatbázisban létrehozott új objektumok rendezést az COLLATE utasítás záradékával módosíthatja. Ez az utasítás nem módosítja meglévő, felhasználó által definiált táblák oszlopainak rendezést. Ezek a COLLATE záradékával módosíthatók.

Engedélyek

Új adatbázis létrehozásához CREATE DATABASE engedélyre van szüksége a master adatbázisban, illetve a CREATE ANY DATABASEvagy ALTER ANY DATABASE engedélyre.

Egy meglévő adatbázis rendezésének módosításához ALTER engedélyre van szüksége az adatbázisban.

Az adatbázis-rendezés beállítása vagy módosítása

Az adatbázis-rendezést az SQL Server Management Studio (SSMS) vagy a Transact-SQL (T-SQL) használatával állíthatja be vagy módosíthatja.

Az SQL Server Management Studio (SSMS) használatával megadhatja egy új adatbázis rendezési módját, vagy frissítheti egy meglévő adatbázis rendezési módját.

Az SQL Server Management Studióban nyissa meg Object Explorer, csatlakozzon egy SQL Server Adatbázismotor példányhoz, bontsa ki a példányt, majd nyissa meg Adatbázisok:

  • Új adatbázisesetén: Kattintson a jobb gombbal Adatbázisok elemre, majd válassza Új adatbázislehetőséget. Ha nem szeretné az alapértelmezett rendezést, válassza a Beállítások lapot, és válasszon egy rendezést a Rendezés legördülő listából.
  • Meglévő adatbázisesetén: Kattintson a jobb gombbal a kívánt adatbázisra, és válassza a Tulajdonságoklehetőséget. Válassza a Beállítások lapot, és válasszon egy összerendelést a Összerendelés legördülő listából.

Adatok a rendezés módosítása után

Fontos

Az adatbázis vagy az egyes oszlopok rendezésének módosítása nem módosítja a meglévő táblákban már tárolt mögöttes adatokat. Hacsak az alkalmazás nem kezeli kifejezetten az adatkonvertálást és a különböző rendezések összehasonlítását, javasoljuk, hogy az adatbázis meglévő adatait az új rendezésbe helyezze át. Ezzel megszűnik annak a kockázata, hogy az alkalmazások helytelenül módosítják az adatokat, ami esetleg helytelen eredményeket vagy csendes adatvesztést eredményez.

Adatbázis-rendezés módosításakor alapértelmezés szerint csak az új táblák öröklik az új adatbázis-rendezést. A meglévő adatok az új rendezésbe való konvertálására több alternatívát is használhat:

  • Adatok helyben konvertálása. Ha egy meglévő táblában lévő oszlop kollációját szeretné átalakítani, olvassa el Oszlopkolláció beállítása vagy módosításacímű témakört. Ez a művelet könnyen implementálható, de blokkolhatja a nagyméretű táblák és a foglalt alkalmazások működését. Tekintse meg az alábbi példát a MyString oszlop új rendezéssé történő helyszíni átalakításához:

    ALTER TABLE dbo.MyTable
        ALTER COLUMN MyString VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8;
    
  • Másolja az adatokat az új rendezést használó új táblákba, és cserélje le az eredeti táblákat ugyanabban az adatbázisban. Hozzon létre egy új táblát az aktuális adatbázisban, amely örökli az adatbázis-rendezést, másolja az adatokat a régi és az új tábla közé, dobja el az eredeti táblát, és nevezze át az új táblát az eredeti tábla nevére. Ez gyorsabb művelet, mint a helyben történő átalakítás, de kihívást jelenthet, ha összetett sémákat kezel olyan függőségekkel, mint az idegenkulcs-megkötések, az elsődleges kulcsok kényszerei és az eseményindítók. A végleges adatszinkronizálást is megkövetelné az eredeti és az új tábla között a végleges kivágás előtt, ha az alkalmazások továbbra is módosítják az adatokat. Az alábbi példa bemutatja, hogyan lehet a MyString oszlopot "másolni és cserélni" egy új rendezési sorrenddel.

    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';
    
  • Másolja az adatokat egy új adatbázisba, amely az új rendezést használja, és cserélje le az eredeti adatbázist. Hozzon létre egy új adatbázist az új rendezés használatával, és az adatok átvitele az eredeti adatbázisból olyan eszközökkel, mint az Integration Services vagy az SQL Server Management Studio Importálás/Exportálás varázslója. Ez az összetett sémák egyszerűbb megközelítése. A végleges adatszinkronizálást is megkövetelné az eredeti és az új adatbázisok között a végleges leépítés előtt, ha az alkalmazások továbbra is módosítják az adatokat.

Korlátozások

  • Windows Unicode-rendezések csak a COLLATE záradékkal használhatók a nchar, nvarcharés ntext adattípusokra, oszlopszinten és kifejezésszinten. Nem használhatók a COLLATE záradékkal egy adatbázis vagy kiszolgálópéldány rendezésének módosításához.

  • Ha a megadott rendezés vagy a hivatkozott objektum által használt rendezés olyan kódlapot használ, amelyet a Windows nem támogat, az adatbázismotor hibát jelenít meg.

  • A felügyelt Azure SQL-példány kiszolgálószintű rendezése a példány létrehozásakor adható meg, és később nem módosítható. További információ a kiszolgáló rendezési beállításával vagy módosításával.

Fontos

A ALTER DATABASE COLLATE utasítás nem támogatott az Azure SQL Database-ben. Adja meg az adatbázis-rendezést és a katalógus rendezést a CREATE DATABASEidején.