DEFINITIONS

Definitions More Info.
Definition ID790
TitleSQL
CategoryNOTES
DefinitionAylik partition group,file silmek drop etmek
Definition Description-- Mevcuttaki partition siler.
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-- Aşağıdaki script düzeni management studio script yapısına göre yazılmıştır.SQL QUARTER PARTITION yaparken yılı 4 aya bölüyor ve yeni aydan +1 gün aldığından QUERTER 13 parçaya bölüyorum.

SET @SQL = 'USE ' +@dbname + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' REMOVE FILE [' +@tableName + 'F_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + ']' + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' REMOVE 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 + ' REMOVE FILE [' +@tableName + 'F_' + CAST (
@YEAR +@loopNumA AS NVARCHAR ( 4 )) + 'MONTH' + CAST (
@MONTH AS NVARCHAR ( 2 )) + ']' + CHAR ( 13 ) + CHAR ( 10 ) + 'GO' + CHAR ( 13 ) + CHAR ( 10 ) + 'ALTER DATABASE ' +@dbname + ' REMOVE 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:16:26
Düzenle
Kopyala
Sil