Modificar un esquema de partición

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Puede modificar un esquema de partición en SQL Server, Azure SQL Database y Azure SQL Managed Instance mediante el diseño de un grupo de archivos para contener la siguiente partición que se agrega a una tabla con particiones mediante SQL Server Management Studio (SSMS) o Transact-SQL. Para hacerlo debe asignar la propiedad NEXT USED a un grupo de archivos.

Puede asignar la propiedad NEXT USED a un grupo de archivos vacío o a uno que ya contenga una partición. Es decir, un grupo de archivos puede tener más de una partición. Obtenga más información sobre grupos de archivos y estrategias de partición en Grupos de archivos.

La creación de particiones de tablas también está disponible en grupos de SQL dedicados en Azure Synapse Analytics, con algunas diferencias de sintaxis. Obtenga más información en Creación de particiones de tablas en un grupo de SQL dedicado.

Limitaciones

Los grupos de archivos afectados por ALTER PARTITION SCHEME deben estar en línea.

Nota:

Azure SQL Database solo admite el grupo de archivos PRIMARY.

Permisos

Los siguientes permisos pueden utilizarse para ejecutar ALTER PARTITION SCHEME:

  • Permiso ALTER ANY DATASPACE. De forma predeterminada, este permiso corresponde a los miembros del rol fijo de servidor sysadmin y a los roles fijos de base de datos db_owner y db_ddladmin .

  • Permiso CONTROL o ALTER en la base de datos en la que se ha creado el esquema de partición.

  • Permiso CONTROL SERVER o ALTER ANY DATABASE en el servidor de la base de datos en la que se ha creado el esquema de partición.

Modificación de un esquema de partición con Transact-SQL

En este ejemplo se utiliza la base de datos de ejemplo AdventureWorks.

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, seleccione Nueva consulta.

  3. Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar.

    Nota:

    Por motivos de simplicidad, este código crea nuevos grupos de archivos, pero no les asigna archivos. Esto permite demostrar cómo modificar el esquema de partición, pero no es un ejemplo completo de configuración de un objeto con particiones. Puede encontrar ejemplos de creación de tablas con particiones e índices en Creación de tablas con particiones e índices.

    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  
    

Eliminación de un esquema de partición con SSMS

  1. Conéctese a la base de datos de destino en el Explorador de objetos.

  2. Seleccione el signo más para expandir la base de datos donde desea eliminar el esquema de partición.

  3. Seleccione el signo más para expandir la carpeta Almacenamiento.

  4. Seleccione el signo más para expandir la carpeta Esquemas de partición.

  5. Haga clic con el botón derecho en el esquema de partición que quiere eliminar y seleccione Eliminar.

  6. En el cuadro de diálogo Eliminar objeto, asegúrese de que está seleccionado el esquema de partición correcta y, después, seleccione Aceptar.

Pasos siguientes

Obtenga más información sobre la creación de particiones de tablas en estos artículos: