Delen via


Een partitieschema wijzigen

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

U kunt een partitieschema wijzigen in SQL Server, Azure SQL Database en Azure SQL Managed Instance door een bestandsgroep aan te wijzen voor de volgende partitie die wordt toegevoegd aan een gepartitioneerde tabel met behulp van SQL Server Management Studio (SSMS) of Transact-SQL. U doet dit door de eigenschap NEXT USED toe te wijzen aan een bestandsgroep.

U kunt de eigenschap NEXT USED toewijzen aan een lege bestandsgroep of aan een groep die al een partitie bevat. Met andere woorden, een bestandsgroep kan meer dan één partitie bevatten. Meer informatie over bestandsgroepen en partitioneringsstrategieën in de Filegroups.

Tabelpartitionering is ook beschikbaar in toegewezen SQL-pools in Azure Synapse Analytics, met enkele syntaxisverschillen. Meer informatie vindt u in Partitioneringstabellen in toegewezen SQL-pool.

Beperkingen

Elke bestandsgroep die wordt beïnvloed door ALTER PARTITION SCHEME moet online zijn.

Notitie

Azure SQL Database ondersteunt alleen de PRIMARY bestandsgroep.

Machtigingen

De volgende machtigingen kunnen worden gebruikt om ALTER PARTITION SCHEME uit te voeren:

  • ELKE DATASPACE-machtiging WIJZIGEN. Deze machtiging is standaard ingesteld op leden van de sysadmin vaste serverfunctie en de db_owner en db_ddladmin vaste databaserollen.

  • Control- of ALTER-machtiging voor de database waarin het partitieschema is gemaakt.

  • CONTROL SERVER- of ALTER ANY DATABASE-machtiging op de server van de database waarin het partitieschema is gemaakt.

Een partitieschema wijzigen met Transact-SQL

In dit voorbeeld wordt de AdventureWorks-voorbeelddatabasegebruikt.

  1. Maak in Object-Verkennerverbinding met een exemplaar van Database Engine.

  2. Selecteer op de standaardbalk Nieuwe query.

  3. Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.

    Notitie

    Ter vereenvoudiging worden met deze code nieuwe bestandsgroepen gemaakt, maar worden er geen bestanden aan toegewezen. Hiermee kunt u zien hoe u het partitieschema kunt wijzigen, maar dit is geen volledig voorbeeld van het configureren van een gepartitioneerd object. Voorbeelden van het maken van gepartitioneerde tabellen en indexen in Gepartitioneerde tabellen en indexen maken.

    USE AdventureWorks2022;  
    GO
    -- add five new filegroups to the AdventureWorks2022 database  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test1fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test2fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test3fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test4fg;  
    GO  
    ALTER DATABASE AdventureWorks2022  
    ADD FILEGROUP test5fg;  
    GO 
    
    -- if the "myRangePF1" partition function and the "myRangePS1" partition scheme exist,  
    -- drop them from the AdventureWorks2022 database  
    IF EXISTS (SELECT * FROM sys.partition_functions  
        WHERE name = 'myRangePF1')  
    DROP PARTITION FUNCTION myRangePF1;  
    GO  
    IF EXISTS (SELECT * FROM sys.partition_schemes  
        WHERE name = 'myRangePS1')  
    DROP PARTITION SCHEME myRangePS1;  
    GO  
    
    -- create the new partition function "myRangePF1" with four partition groups  
    CREATE PARTITION FUNCTION myRangePF1 (int)  
    AS RANGE LEFT FOR VALUES ( 1, 100, 1000 );  
    GO  
    
    -- create the new partition scheme "myRangePS1"that will use   
    -- the "myRangePF1" partition function with five file groups.  
    -- The last filegroup, "test5fg," will be kept empty but marked  
    -- as the next used filegroup in the partition scheme.  
    CREATE PARTITION SCHEME myRangePS1  
    AS PARTITION myRangePF1  
    TO (test1fg, test2fg, test3fg, test4fg, test5fg);  
    GO  
    
    --Split "myRangePS1" between boundary_values 100 and 1000  
    --to create two partitions between boundary_values 100 and 500  
    --and between boundary_values 500 and 1000.  
    ALTER PARTITION FUNCTION myRangePF1 ()  
    SPLIT RANGE (500);  
    GO  
    
    -- Allow the "myRangePS1" partition scheme to use the filegroup "test5fg"  
    -- for the partition with boundary_values of 100 and 500  
    ALTER PARTITION SCHEME myRangePS1  
    NEXT USED test5fg;  
    GO  
    

Een partitieschema verwijderen met SSMS

  1. Maak in Objectverkennerverbinding met uw doeldatabase.

  2. Selecteer het plusteken om de database uit te vouwen waarin u het partitieschema wilt verwijderen.

  3. Selecteer het plusteken om de map Storage uit te vouwen.

  4. Selecteer het plusteken om de map Partitieschema's uit te vouwen.

  5. Klik met de rechtermuisknop op het partitieschema dat u wilt verwijderen en selecteer verwijderen.

  6. Controleer in het dialoogvenster Object verwijderen of het juiste partitieschema is geselecteerd en selecteer OK.

Volgende stappen

Meer informatie over tabelpartitionering in deze artikelen: