/*********************************************************************
The following script shows how to use table partition to delete history data (the first partition)
--1. Create Partition Function to define a partition range
--2. Create Partition Sheme to map the partition to file group(s)
--3. Create a table on the sheme
--4. Populate the partitioned table with test data
--5. Check the data distribution in the partitioned table
--6. Delete the first partition
---a. create a temp table with the same structure of the partitioned table
---b. move the first partition of the partitioned table to the temp table
---c. Check the data distribution in the partitioned table and the temp table
---d. drop the temp table
--Using the following script to check the partition informaiton
select * from sys.partitions where object_id = Object_id('ptable')
select * from sys.partition_range_values
**********************************************************************/
---------------------------------------------------------------
CREATE PARTITION FUNCTION pfunc (int)
AS RANGE LEFT FOR VALUES (50,100,150)
CREATE PARTITION SCHEME psche
AS PARTITION pfunc ALL TO ([Primary])
CREATE TABLE ptable(tid INT IDENTITY(1,1), tval VARCHAR(200)) ON psche(tid)
--4. Populate the partitioned table
INSERT ptable(tval)
SELECT [name] FROM syscolumns
SELECT $PARTITION.pfunc(tid), COUNT(*) FROM ptable
GROUP BY $PARTITION.pfunc(tid)
CREATE TABLE temp(tid INT NOT NULL, tval VARCHAR(200))
ALTER TABLE ptable
SWITCH PARTITION 1 TO temp
SELECT count(*) FROM temp
DROP TABLE temp
run the following script to clean it up
if object_id('ptable') is not null
begin
drop table ptable
end
if exists(select * from sys.partition_schemes where [name] = 'psche')
drop partition scheme psche
if exists(select 1 from sys.partition_functions where [name] = 'pfunc')
drop partition function pfunc
go
if object_id('temp') is not null
drop table temp
get your job site at simplyhired.com