適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 SQL 資料庫
您可以透過指定檔案群組來承載新增至分割表的下一個分割區,以修改分割區方案,使用 SQL Server Management Studio (SSMS) 或 Transact-SQL。 作法是,將 NEXT USED 屬性指派給檔案群組。
可以將下一個使用屬性指派給空的檔案群組或已持有分割區的檔案群組。 換句話說,檔案群組可以保存一個以上的資料分割。 深入了解檔案群組中的檔案群組和資料分割策略。
Limitations
任何受 ALTER PARTITION SCHEME 影響的檔案群組都必須處於在線狀態。
Azure SQL Database 和 Fabric 中的 SQL 資料庫完全支援數據分割。 所有分割區都必須放在 PRIMARY 檔案群組上,因為在 Azure SQL Database 和 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 刪除分割區方案
在 Object Explorer 中,連線到您的目標資料庫。
選取加號圖示,展開您要刪除分割配置的資料庫。
選擇加號展開《儲存體》資料夾。
選取加號圖示展開 [分割方案] 資料夾。
以滑鼠右鍵按一下您想要刪除的資料分割配置,然後選取 [刪除]。
在 [刪除物件] 對話方塊中,確定已選取正確的資料分割配置,然後選取 [確定]。
後續步驟
閱讀下列文章深入了解資料表分割: