22,294
社区成员
发帖
与我相关
我的任务
分享
USE [mDATA]
GO
/****** Object: StoredProcedure [imp].[addpartition] Script Date: 02/26/2013 11:09:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [imp].[addpartition]
@date datetime = NULL
as
if @date is null
set @date=(select cast(max(value) as datetime)+1 from sys.partition_range_values)
if @date>GETDATE()+3
set @date=(select cast(max(value) as datetime) from sys.partition_range_values)
declare @sqlstring nvarchar(2000)
declare @filegroup nvarchar(50)
set @filegroup=N'CWDATA'+CONVERT(char(6),@date,112)
IF not exists(select * from sys.filegroups where name=@filegroup)
BEGIN
set @sqlstring=N'ALTER DATABASE [CWDATA] ADD FILEGROUP ['+@filegroup+']'
EXECUTE sp_executesql @sqlstring
--select @sqlstring;
set @sqlstring=N'ALTER DATABASE [CWDATA] ADD FILE ( NAME = N'''+@filegroup+''', FILENAME = N''F:\File\'+@filegroup+'.ndf'' , SIZE = 30720KB , FILEGROWTH = 10240KB ) TO FILEGROUP ['+@filegroup+']'
EXECUTE sp_executesql @sqlstring
--select @sqlstring;
END
IF not exists(select * from sys.partition_range_values where value=@date)
BEGIN
set @sqlstring=N'ALTER PARTITION SCHEME [SalesDateScheme] NEXT USED ['+@filegroup+']'
EXECUTE sp_executesql @sqlstring
--select @sqlstring;
set @sqlstring=N'ALTER PARTITION FUNCTION [SalesDatePFN]() SPLIT RANGE ('''+convert(varchar,@date,23)+''')'
EXECUTE sp_executesql @sqlstring
--select @sqlstring;
END
USE [DATA]
GO
/****** Object: PartitionFunction [SalesDatePFN] Script Date: 02/26/2013 17:01:36 ******/
CREATE PARTITION FUNCTION [SalesDatePFN](date) AS RANGE RIGHT FOR VALUES (
N'2010-01-01T00:00:00.000', N'2010-01-02T00:00:00.000', N'2010-01-03T00:00:00.000',
N'2010-01-04T00:00:00.000', N'2010-01-05T00:00:00.000', N'2010-01-06T00:00:00.000',
N'2010-01-07T00:00:00.000', N'2010-01-08T00:00:00.000', N'2010-01-09T00:00:00.000',
N'2010-01-10T00:00:00.000', N'2010-01-11T00:00:00.000', N'2010-01-12T00:00:00.000',
N'2010-01-13T00:00:00.000', N'2010-01-14T00:00:00.000', N'2010-01-15T00:00:00.000',
......,
N'2013-01-13T00:00:00.000', N'2013-01-14T00:00:00.000', N'2013-01-15T00:00:00.000',
N'2013-01-16T00:00:00.000', N'2013-01-17T00:00:00.000', N'2013-01-18T00:00:00.000',
N'2013-01-19T00:00:00.000', N'2013-01-20T00:00:00.000', N'2013-01-21T00:00:00.000',
N'2013-01-23T00:00:00.000', N'2013-01-24T00:00:00.000', N'2013-01-25T00:00:00.000',
N'2013-01-26T00:00:00.000')
GO
USE [DATA]
GO
/****** Object: PartitionFunction [SalesDatePFN] Script Date: 02/26/2013 16:40:17 ******/
CREATE PARTITION FUNCTION [SalesDatePFN](date) AS RANGE RIGHT
FOR VALUES (
N'2010-01-01T00:00:00.000', N'2010-01-02T00:00:00.000', N'2010-01-03T00:00:00.000', N'2010-01-04T00:00:00.000',
N'2010-01-05T00:00:00.000', N'2010-01-06T00:00:00.000', N'2010-01-07T00:00:00.000', N'2010-01-08T00:00:00.000',
N'2010-01-09T00:00:00.000', N'2010-01-10T00:00:00.000', N'2010-01-11T00:00:00.000', N'2010-01-12T00:00:00.000',
N'2010-01-13T00:00:00.000', N'2010-01-14T00:00:00.000', N'2010-01-15T00:00:00.000', N'2010-01-16T00:00:00.000',
N'2012-08-25T00:00:00.000', N'2012-08-26T00:00:00.000', N'2012-08-27T00:00:00.000', N'2012-08-28T00:00:00.000',
......,
N'2013-01-16T00:00:00.000', N'2013-01-17T00:00:00.000', N'2013-01-18T00:00:00.000', N'2013-01-19T00:00:00.000',
N'2013-01-20T00:00:00.000', N'2013-01-21T00:00:00.000', N'2013-01-22T00:00:00.000', N'2013-01-23T00:00:00.000',
N'2013-01-24T00:00:00.000', N'2013-01-25T00:00:00.000', N'2013-01-26T00:00:00.000')
GO