DEFINITIONS

Definitions More Info.
Definition ID789
TitleSQL
CategoryNOTES
DefinitionAylik partition group,file add-olusturmak
Definition Description--Aşağıdaki script aylık partitiona göre yazılmıştır
DECLARE
@dbname nvarchar ( 100 ),--database adı
@tableName nvarchar ( 100 ),-- partition yapılacak tablo adı
@YEAR INT,-- Partition yapılacağı başlangıç yılı ya da integer bir başlangıç sayısı
@MONTH INT,-- kaç aylık partition yapmak istiyorsunuz. Doğal olarak 12 ANCAK artık ayla beraber 13.
--Artık ay sql normalde aylık partition yapacağım dediğiniz zaman 12 aya ek son olarak yeni yıldan bir daha ekler.
@totalPartYear INT,-- Partition yapılacak yıl sayısı. Kaç yıllık veriyi partitionlamak istiyorsunuz.
@loopNumA INT,-- başlangıç yılına eklenecek döngü sayısı
@filename nvarchar ( 500 ),-- Partition yapılacak dosya dizini (path) @initialsize int, -- Dosyanın başlagıç boyutu
@filegrowth INT,-- Dosyanın otomatik büyüme boyutu
@SQL nvarchar ( MAX ),
@sql1 nvarchar ( 4000 )
SET @dbname = 'TEST'
SET @tableName = 'prItemBarcode'
SET @YEAR = 2016
SET @filename = 'D:\MSSQL\USER\DATA\PARTITIONED\'
SET @initialsize = 100
SET @filegrowth = 10
SET @totalPartYear = 1
SET @loopnumA = 0
WHILE
( @loopNumA <=@totalPartYear ) BEGIN

SET @MONTH = 1
WHILE
( @MONTH <= 12 ) BEGIN

SET @SQL = 'USE ' +@dbname + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' ADD FILEGROUP [' +@tableName + 'G' + '_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + ']' + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' ADD FILE (name = ' +@tableName + 'F_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + ', FILENAME = ' + '''' +@filename +@tableName + 'F_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + '.ndf''' + ',' + ' size = ' + CAST (
@initialsize AS nvarchar ( 5 )) + ' MB, ' + 'filegrowth = ' + CAST (
@filegrowth AS nvarchar ( 5 )) + ' MB) TO FILEGROUP ' +@tableName + 'G' + '_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 )
SET @MONTH = @MONTH + 1 PRINT ( @SQL )
IF
(( @loopNumA = @totalPartYear ) AND @MONTH = 13 ) BEGIN

SET @loopNumA = @loopNumA + 1
SET @MONTH = 1
SET @SQL = 'USE ' +@dbname + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' ADD FILEGROUP [' +@tableName + 'G' + '_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + ']' + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' ADD FILE (name = ' +@tableName + 'F_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + ', FILENAME = ' + '''' +@filename +@tableName + 'F_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + '.ndf''' + ',' + ' size = ' + CAST (
@initialsize AS nvarchar ( 5 )) + ' MB, ' + 'filegrowth = ' + CAST (
@filegrowth AS nvarchar ( 5 )) + ' MB) TO FILEGROUP ' +@tableName + 'G' + '_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) PRINT ( @SQL ) RETURN
END
END
SET @loopNumA = @loopNumA + 1
END
RecordBycunay
Record Date31-08-2017 01:15:51
Düzenle
Kopyala
Sil