适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
可以通过在 SQL Server Management Studio (SSMS) 或 Transact-SQL 中指定文件组来容纳添加到分区表中的下一个分区,从而修改分区方案。 可通过将 NEXT USED 属性分配给文件组来执行此操作。
您可以将 NEXT USED 属性分配给空文件组或已存有分区的文件组。 也就是说,一个文件组可以保存多个分区。 要详细了解文件组和分区策略,请参阅 文件组。
Limitations
受 ALTER PARTITION SCHEME 影响的所有文件组都必须处于联机状态。
Azure SQL 数据库和 Fabric 中的 SQL 数据库完全支持分区。 所有分区必须放置在PRIMARY
文件组上,因为在 Azure SQL 数据库和 Fabric 的 SQL 数据库中仅提供 PRIMARY
文件组。
表分区在 Azure Synapse Analytics 的专用 SQL 池中可用,语法存在一些差异。 有关详细信息,请参阅 专用 SQL 池中的分区表。
Permissions
以下权限可用于执行 ALTER PARTITION SCHEME:
ALTER ANY DATASPACE 权限。 默认情况下,此权限授予 sysadmin 固定服务器角色和 db_owner 及 db_ddladmin 固定数据库角色的成员。
对创建分区方案时所在数据库的 CONTROL 或 ALTER 权限。
对承载了创建分区方案时所在数据库的服务器的 CONTROL SERVER 或 ALTER ANY DATABASE 权限。
使用 Transact-SQL 修改分区方案
本示例使用 AdventureWorks 示例数据库。
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。
Note
为简便起见,此代码将创建新的文件组,但不向其分配文件。 这便于演示如何修改分区方案,而不是有关配置分区对象的完整示例。 有关创建已分区表和索引的示例,请参阅 创建已分区表和索引。
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
使用 SSMS 删除分区方案
在对象资源管理器中,连接到目标数据库。
选择加号以展开要删除分区方案的数据库。
选择加号以展开“存储”文件夹。
选择加号以展开“分区方案”文件夹。
右键单击要删除的分区方案,然后选择“删除”。
在“删除对象”对话框中,确保选择的分区方案正确,然后选择“确定”。
Next steps
在以下文章中详细了解表分区: