2012-05-15 2 views
1

Я создал функцию разделения, но я не могу применить ее к таблице. Я не уверен, где я ошибаюсь.Создать функцию разделения в SQL

Вот моя функция раздел:

 CREATE PARTITION FUNCTION StaticDateMonthPartition (int) 
    AS RANGE left 
    FOR VALUES  ( 
        20120301, 
        20120401, 
        20120501, 
        20120601, 
        20120701, 
        20120801, 
        20120901, 
        20121001, 
        20121101, 
        20121201, 
        20130101, 
        20130201 
        ) 

пытается применить к этой таблице:

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[partition_OLAP_Fact_vvv]') AND type in (N'U')) 
    DROP TABLE [dbo].[partition_OLAP_Fact_vvv] 
    GO 

    CREATE TABLE [dbo].[partition_OLAP_Fact_vvv] 
    (
     FFFFactvvvId   bigint, 
     CORStaticDateId   int, 
     CORVersionvvvId   bigint, 
     vvvCount    tinyint, 
     UPB      decimal(18, 2) 
    ) ON CORStaticDateMonthPartition ([CORStaticDateId]) 

Но когда я пытаюсь выполнить скрипт таблицы, я получаю эту ошибку:

Invalid partition scheme 'CORStaticDateMonthPartition' specified 

Пожалуйста, помогите.


перепроведении мой код с шагом

Pinal's tutoral велик! Вот краткий обзор

  1. Добавить файл группы для каждого из разделов

    Alter Database [database] Add FileGroup partition_201207 
    
  2. Создать раздел Функция

    CREATE PARTITION FUNCTION Partition_Range_CORStaticMonth(int) 
    AS RANGE left 
    FOR VALUES (20120301) 
    
  3. Создать раздел Схема

    CREATE PARTITION SCHEME Partition_Scheme_CORStaticMonth 
    AS PARTITION Partition_Range_CORStaticMonth 
    TO (FFF_Fact_vvv_201203) 
    
  4. Добавление файлов в файловых групп

    ALTER DATABASE [database] 
    ADD FILE( 
         NAME = N'FFF_Fact_vvv_201203', 
         FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\FFF_Fact_vvv_201203.ndf' , 
         SIZE = 2048KB , 
         FILEGROWTH = 1024KB 
         ) 
    TO FILEGROUP [FFF_Fact_vvv_201203] 
    
  5. Построить Стол с Partition Scheme применяется

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[partition_Table]') AND type in (N'U')) 
    DROP TABLE [dbo].[partition_Table] 
    GO 
    
    CREATE TABLE [dbo].[partition_Table] 
    (
        CORStaticDateId   int 
    ) ON Partition_Scheme_CORStaticMonth ([CORStaticDateId]) 
    
+0

Почему вы храните даты как 'int', а не хмм, говорите 'date'? –

+1

это таблица фактов, которая подается в наш куб SSAS.Истинная дата существует в измерении даты –

+0

идеальный подход для хранения дат как целых чисел на DW – Diego

ответ

2

вам нужна схема разделения для применения к таблице.

Заказ:

1) Создайте файловые группы

2) Создать свой раздел Функцию

3) Присоединить Partition Scheme к файловым группам (с помощью функции раздела)

4) Создать таблицу на разделе Схема

Отметьте это link для учебника

+0

работал Отлично, легко: я отправлю свой код с ответом –

0

Является ли это просто вопрос присвоения имен, не следует:

) ON CORStaticDateMonthPartition ([CORStaticDateId]) 

be

) ON StaticDateMonthPartition ([CORStaticDateId]) 
+0

Я получаю ту же ошибку –

Смежные вопросы