Freigeben über


Ändern eines Partitionsschemas

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Sie können ein Partitionsschema ändern, indem Sie eine Dateigruppe entwerfen, um die nächste Partition zu speichern, die einer partitionierten Tabelle mithilfe von SQL Server Management Studio (SSMS) oder Transact-SQL hinzugefügt wird. Dies erreichen Sie, indem Sie einer Dateigruppe die NEXT USED-Eigenschaft zuweisen.

Die NEXT USED-Eigenschaft können Sie einer leeren Dateigruppe zuweisen oder einer Dateigruppe, die bereits eine Partition besitzt. Eine Dateigruppe kann also mehr als eine Partition aufweisen. Weitere Informationen zu Dateigruppen und Partitionierungsstrategien finden Sie in den Dateigruppen.

Limitations

Jede Dateigruppe, die von ALTER PARTITION SCHEME betroffen ist, muss online sein.

Die Partitionierung wird in Azure SQL-Datenbank und SQL-Datenbank in Fabric vollständig unterstützt. Alle Partitionen müssen in der PRIMARY Dateigruppe platziert werden, da nur die PRIMARY Dateigruppe in Azure SQL-Datenbank und SQL-Datenbank in Fabric bereitgestellt wird.

Die Tabellenpartitionierung ist in dedizierten SQL-Pools in Azure Synapse Analytics mit einigen Syntaxunterschieden verfügbar. Weitere Informationen finden Sie unter Partitionierungstabellen in dediziertem SQL-Pool.

Permissions

Die folgenden Berechtigungen können verwendet werden, um ALTER PARTITION SCHEME auszuführen:

  • ALTER ANY DATASPACE-Berechtigung. Diese Berechtigung gilt standardmäßig für Mitglieder der festen Serverrolle sysadmin und für Mitglieder der festen Datenbankrollen db_owner und db_ddladmin .

  • CONTROL- oder ALTER-Berechtigung für die Datenbank, in der das Partitionsschema erstellt wurde.

  • Die CONTROL SERVER-Berechtigung oder ALTER ANY DATABASE-Berechtigung auf dem Server der Datenbank, in der das Partitionsschema erstellt wurde.

Ändern eines Partitionsschemas mit Transact-SQL

In diesem Beispiel wird die AdventureWorks-Beispieldatenbank verwendet.

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie dann auf Ausführen.

    Note

    Aus Gründen der Einfachheit erstellt dieser Code neue Dateigruppen, weist ihnen aber keine Dateien zu. Das ermöglicht die Demonstration der Änderung des Partitionsschemas, ist jedoch kein vollständiges Beispiel für die Konfiguration eines partitionierten Objekts. Hier finden Sie Beispiele zum Erstellen partitionierter Tabellen und Indizes in Erstellen partitionierter Tabellen und Indizes.

    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  
    

Löschen eines Partitionsschemas mit SSMS

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit Ihrer Zieldatenbank her.

  2. Wählen Sie das Pluszeichen aus, um die Datenbank zu erweitern, die das zu löschende Partitionsschema enthält.

  3. Wählen Sie das Pluszeichen aus, um den Ordner Speicher zu erweitern.

  4. Wählen Sie das Pluszeichen aus, um den Ordner Partitionsschemas zu erweitern.

  5. Klicken Sie mit der rechten Maustaste auf das Partitionsschema, das Sie löschen möchten, und wählen Sie Löschenaus.

  6. Stellen Sie im Dialogfeld Objekt löschen sicher, dass das richtige Partitionsschema ausgewählt ist, und wählen Sie dann OK aus.

Nächste Schritte

In den folgenden Artikeln erfahren Sie mehr über die Tabellenpartitionierung: