You've already forked ssms-addin
mirror of
https://github.com/alex-bochkov/ssms-addin.git
synced 2025-11-23 22:04:53 +02:00
46 lines
1.6 KiB
Transact-SQL
46 lines
1.6 KiB
Transact-SQL
CREATE PARTITION FUNCTION [pf_TABLENAME](datetime) AS RANGE RIGHT FOR VALUES (N'2016-10-01T00:00:00.000')
|
|
GO
|
|
ALTER DATABASE [DATABASENAME] ADD FILEGROUP [FG_TABLENAME20161001]
|
|
GO
|
|
ALTER DATABASE [DATABASENAME] ADD FILE ( NAME = N'F_TABLENAME20161001', FILENAME = N'X:\Databases\DATABASENAME\F_TABLENAME20161001.ndf', SIZE = 8MB, FILEGROWTH = 512MB ) TO FILEGROUP [FG_TABLENAME20161001]
|
|
GO
|
|
CREATE PARTITION SCHEME [ps_TABLENAME] AS PARTITION [pf_TABLENAME] TO ([PRIMARY], [FG_TABLENAME20161001])
|
|
GO
|
|
|
|
CREATE TABLE [dbo].[TABLENAME](
|
|
[id] [BIGINT] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
|
|
...
|
|
[createDateTime] [datetime] NOT NULL,
|
|
CONSTRAINT [PK_TABLENAME] PRIMARY KEY CLUSTERED ([id], [createDateTime])
|
|
) ON pf_TABLENAME([createDateTime])
|
|
|
|
GO
|
|
|
|
DECLARE @Date date = '20160101', @DateString varchar(10) = '', @Cmd nvarchar(max) = '';
|
|
|
|
WHILE @Date < '20210101'
|
|
BEGIN
|
|
|
|
SET @DateString = FORMAT(@Date, 'yyyyMMdd')
|
|
|
|
SET @Cmd = '
|
|
ALTER DATABASE [DATABASENAME] ADD FILEGROUP [FG_TABLENAME' + @DateString + ']
|
|
ALTER DATABASE [DATABASENAME] ADD FILE (NAME = ''F_TABLENAME' + @DateString + ''',
|
|
FILENAME = ''X:\Databases\DATABASENAME\F_TABLENAME' + @DateString + '.ndf'',
|
|
SIZE = 8MB,
|
|
MAXSIZE = UNLIMITED, FILEGROWTH = 128MB)
|
|
TO FILEGROUP [FG_TABLENAME' + @DateString + ']
|
|
|
|
ALTER PARTITION SCHEME [ps_TABLENAME] NEXT USED [FG_TABLENAME' + @DateString + ']
|
|
|
|
ALTER PARTITION FUNCTION [pf_TABLENAME]() split RANGE (''' + @DateString + ''')
|
|
'
|
|
PRINT '******************************************'
|
|
PRINT @CMD
|
|
EXEC (@cmd)
|
|
|
|
SET @Date = DATEADD(month, 1, @DAte)
|
|
|
|
END
|
|
|