--
**************************************************************************************
-- Date: 07/19/2005
--
-- File: sliding.sql for Sliding Window Example
--
-- Summary: Managing a Range Partitioned Table
-- Archive transaction data for September 2003.
--
-- **************************************************************************************
--
-- This file is part of the Microsoft SQL Server Code Samples.
-- Copyright (C) Microsoft Corporation. All rights reserved.
--
-- This source code is intended only as a supplement to Microsoft
-- Development Tools and/or on-line documentation. See these other
-- materials for detailed information regarding Microsoft code samples.
--
-- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
-- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
-- PARTICULAR PURPOSE.
--
-- **************************************************************************************
SET DATEFORMAT mdy;
GO
USE [ AdventureWorks ] ;
GO
ALTER PARTITION SCHEME TransactionsPS1
NEXT USED [ PRIMARY ] ;
GO
-- Add a new partition on the end of table TransactionHistory for August 2004.
ALTER PARTITION FUNCTION TransactionRangePF1()
SPLIT RANGE ( ' 9/01/2004 ' );
GO
ALTER PARTITION SCHEME TransactionArchivePS2
NEXT USED [ PRIMARY ] ;
GO
-- Add a new partition to table TransactionHistoryArchive to hold the
-- September 2003 data.
ALTER PARTITION FUNCTION TransactionArchivePF2()
SPLIT RANGE ( ' 10/01/2003 ' );
GO
-- You must add a check constraint to table TransactionHistory to define
-- the boundary for the first partition before switching it out.
ALTER TABLE [ Production ] . [ TransactionHistory ]
ADD CONSTRAINT [ CK_TransactionHistory_DateRange ]
CHECK ( [ TransactionDate ] >= ' 9/01/2003 ' );
GO
-- Move the data for September 2003 from table TransactionHistory to
-- table TransactionHistoryArchive.
ALTER TABLE [ Production ] . [ TransactionHistory ]
SWITCH PARTITION 1
TO [ Production ] . [ TransactionHistoryArchive ] PARTITION 2 ;
GO
-- Merge the first two partitions of table TransactionHistory.
ALTER PARTITION FUNCTION TransactionRangePF1()
MERGE RANGE ( ' 10/01/2003 ' );
GO
-- Merge the September 2003 partition of table TransactionHistoryArchive
-- with the first partition.
ALTER PARTITION FUNCTION TransactionArchivePF2()
MERGE RANGE ( ' 9/01/2003 ' );
GO
-- Remove the date constraint on table TransactionHistory.
ALTER TABLE [ Production ] . [ TransactionHistory ]
DROP CONSTRAINT [ CK_TransactionHistory_DateRange ] ;
GO
SELECT OBJECT_NAME ( [ object_id ] ), * FROM [ sys ] . [ partitions ]
WHERE [ object_id ] = OBJECT_ID ( ' [Production].[TransactionHistory] ' )
ORDER BY [ partition_number ] , [ index_id ] ;
GO
SELECT OBJECT_NAME ( [ object_id ] ), * FROM [ sys ] . [ partitions ]
WHERE [ object_id ] = OBJECT_ID ( ' [Production].[TransactionHistoryArchive] ' )
ORDER BY [ partition_number ] , [ index_id ] ;
GO
USE [ master ] ;
GO
-- Date: 07/19/2005
--
-- File: sliding.sql for Sliding Window Example
--
-- Summary: Managing a Range Partitioned Table
-- Archive transaction data for September 2003.
--
-- **************************************************************************************
--
-- This file is part of the Microsoft SQL Server Code Samples.
-- Copyright (C) Microsoft Corporation. All rights reserved.
--
-- This source code is intended only as a supplement to Microsoft
-- Development Tools and/or on-line documentation. See these other
-- materials for detailed information regarding Microsoft code samples.
--
-- THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
-- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-- IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
-- PARTICULAR PURPOSE.
--
-- **************************************************************************************
SET DATEFORMAT mdy;
GO
USE [ AdventureWorks ] ;
GO
ALTER PARTITION SCHEME TransactionsPS1
NEXT USED [ PRIMARY ] ;
GO
-- Add a new partition on the end of table TransactionHistory for August 2004.
ALTER PARTITION FUNCTION TransactionRangePF1()
SPLIT RANGE ( ' 9/01/2004 ' );
GO
ALTER PARTITION SCHEME TransactionArchivePS2
NEXT USED [ PRIMARY ] ;
GO
-- Add a new partition to table TransactionHistoryArchive to hold the
-- September 2003 data.
ALTER PARTITION FUNCTION TransactionArchivePF2()
SPLIT RANGE ( ' 10/01/2003 ' );
GO
-- You must add a check constraint to table TransactionHistory to define
-- the boundary for the first partition before switching it out.
ALTER TABLE [ Production ] . [ TransactionHistory ]
ADD CONSTRAINT [ CK_TransactionHistory_DateRange ]
CHECK ( [ TransactionDate ] >= ' 9/01/2003 ' );
GO
-- Move the data for September 2003 from table TransactionHistory to
-- table TransactionHistoryArchive.
ALTER TABLE [ Production ] . [ TransactionHistory ]
SWITCH PARTITION 1
TO [ Production ] . [ TransactionHistoryArchive ] PARTITION 2 ;
GO
-- Merge the first two partitions of table TransactionHistory.
ALTER PARTITION FUNCTION TransactionRangePF1()
MERGE RANGE ( ' 10/01/2003 ' );
GO
-- Merge the September 2003 partition of table TransactionHistoryArchive
-- with the first partition.
ALTER PARTITION FUNCTION TransactionArchivePF2()
MERGE RANGE ( ' 9/01/2003 ' );
GO
-- Remove the date constraint on table TransactionHistory.
ALTER TABLE [ Production ] . [ TransactionHistory ]
DROP CONSTRAINT [ CK_TransactionHistory_DateRange ] ;
GO
SELECT OBJECT_NAME ( [ object_id ] ), * FROM [ sys ] . [ partitions ]
WHERE [ object_id ] = OBJECT_ID ( ' [Production].[TransactionHistory] ' )
ORDER BY [ partition_number ] , [ index_id ] ;
GO
SELECT OBJECT_NAME ( [ object_id ] ), * FROM [ sys ] . [ partitions ]
WHERE [ object_id ] = OBJECT_ID ( ' [Production].[TransactionHistoryArchive] ' )
ORDER BY [ partition_number ] , [ index_id ] ;
GO
USE [ master ] ;
GO