我想知道如何像MySQL一样在SQL SERVER中按名称删除分区,例如:
CREATE TABLE t1 (
id INT,
year_col INT
)
PARTITION BY RANGE (year_col) (
PARTITION p0 VALUES LESS THAN (1991),
PARTITION p1 VALUES LESS THAN (1995),
PARTITION p2 VALUES LESS THAN (1999)
);
ALTER TABLE t1 DROP PARTITION p0, p1;
每天都会创建一个新分区,并删除旧分区。因为,这是每天的分区。
我已经设置了一个分区,例如:
CREATE PARTITION FUNCTION [pf_trans_date](datetime2(3)) AS RANGE LEFT
FOR VALUES (N'2019-03-27T00:00:00.000', N'2019-03-28T00:00:00.000')
CREATE PARTITION SCHEME [sh_trans_date] AS PARTITION [pf_trans_date]
TO ([PRIMARY], [PRIMARY])
我可以添加一个新分区:
ALTER PARTITION SCHEME [sh_trans_date]
NEXT USED [PRIMARY]
ALTER PARTITION FUNCTION [pf_trans_date_byhour]() SPLIT RANGE('2019/03/29')
现在的问题是,如何删除旧的分区日期2019-03-27T00:00:00.000
及其中的所有数据。 Coz,我在SQL Server 2017中看不到任何执行此功能的函数。