Rogério,
O particionamento de tabelas no SQL Server é construído através do uso das chamadas partition Functions!
Você pode implementar sim este tipo de cenário e elaboração através do uso de Stored Procedures!
Veja se o exemplo abaixo de como criar este ambiente particionado poderá lhe ajudar:
Create Database Particionamento
ON PRIMARY
(NAME = Particionamento_Dados,
FILENAME = N'C:\SQL\Teste_Dados.mdf',
SIZE = 2MB,
MAXSIZE = Unlimited,
FILEGROWTH = 10%)
LOG ON
( NAME = Particionamento_Log,
FILENAME = N'C:\SQL\Particionamento_Log.ldf',
SIZE = 4MB,
MAXSIZE = Unlimited,
FILEGROWTH = 10%)
Alter Database Particionamento
Add FileGroup ParticionamentoFG1
Go
Alter Database Particionamento
Add File
(Name = Particionamento_Dados_Segundo,
FileName = 'C:\SQL\Particionamento_Dados_Segundo.ndf',
Size = 2MB,
MaxSize = Unlimited,
Filegrowth = 10%)
To Filegroup ParticionamentoFG1
Go
Alter Database Particionamento
Add FileGroup ParticionamentoFG2
Go
Alter Database Particionamento
Add File
(Name = Particionamento_Dados_Terceiro,
FileName = 'C:\SQL\Particionamento_Dados_Terceiro.ndf',
Size = 5MB,
MaxSize = Unlimited,
Filegrowth = 10%)
To Filegroup ParticionamentoFG2
Go
CREATE PARTITION FUNCTION PF_Valores (Int)
AS RANGE Left FOR VALUES (1,4,8)
GO
CREATE PARTITION SCHEME PS_Valores
AS PARTITION PF_Valores
TO (TesteFG1, TesteFG1, TesteFG2, TesteFG2);
GO
Create Table Valores
(Codigo Int Identity(1,1),
Descritivo Varchar(20) Not Null,
Valor Int Not Null)
On PS_Valores(Valor)
Insert Into Valores (Descritivo, Valor)
Values ('Este é um teste',10)
Go 100000
Insert Into Valores (Descritivo, Valor)
Values ('Este é um teste',3)
Go 100000
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]