Udostępnij za pośrednictwem


Tworzenie PARTYCJI funkcji (Transact-SQL)

Tworzy funkcja z bieżącej bazy danych, która mapuje wiersze tabela lub indeksu na partycje na podstawie wartości określonej kolumna.Funkcja tworzenia PARTYCJI jest pierwszym krokiem w tworzeniu tabela partycjonowana lub indeksu.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type )
AS RANGE [ LEFT | RIGHT ] 
FOR VALUES ( [ boundary_value [ ,...n ] ] ) 
[ ; ]

Argumenty

  • partition_function_name
    Jest to nazwa partycji funkcja.Nazwy funkcja partycji musi być unikatowa w obrębie bazy danych i zgodne z regułami dla identyfikatorów.

  • input_parameter_type
    Jest to typ danych kolumna używanej partycjonowanie.Wszystkie typy danych są ważne do użytku jako partycjonowanie kolumny, z wyjątkiem text, ntext, image, xml, timestamp, varchar(max), nvarchar(max), varbinary(max), typy danych alias lub CLR typy danych zdefiniowane przez użytkownika.

    Rzeczywiste kolumna, znane jako partycjonowanie kolumna, jest określona w instrukcjaCREATE TABLE lub CREATE INDEX.

  • boundary_value
    Określa wartości graniczne dla każdej partycji tabela partycjonowana lub indeksu, który korzysta z partition_function_name.Jeśli boundary_value jest pusta, funkcja partition mapuje całej tabela lub za pomocą indeksu partition_function_name do jednej partycji.Tylko jeden partycjonowanie kolumna, podana w CREATE TABLE lub CREATE INDEX instrukcja, mogą być używane.

    boundary_valuejest stała wyrażenie , które można odwoływać się do zmiennych.Obejmuje to zmienne typ zdefiniowany przez użytkownika lub funkcji i funkcje zdefiniowane przez użytkownika.Nie można odwołać Transact-SQL wyrażeń.boundary_valueMusisz dopasować lub być jawnie konwertowany na typ danych dostarczanych w input_parameter_typei nie może być obcięta podczas konwersji niejawnych w sposób, że rozmiar i skalę wartość nie jest zgodny z jego odpowiadające input_parameter_type.

    Ostrzeżenie

    Jeśli boundary_value składa się z datetime lub smalldatetime literały literały te są obliczane przy założeniu, że jest us_english języka sesja .Zachowanie to zostało wycofane.Aby upewnić się, że definicja funkcja partycji zachowuje się zgodnie z oczekiwaniami we wszystkich językach sesja , zaleca się używanie stałych, które są interpretowane w taki sam sposób wszystkie ustawienia języka, takie jak formacie RRRRMMDD; albo jawnie przekonwertować literały określonego stylu.Aby uzyskać więcej informacji, zobacz Pisać instrukcje międzynarodowych Transact-SQL.Aby określić język sesja serwera, uruchom SELECT @@LANGUAGE.

  • ...n
    Określa liczbę wartości dostarczonych przez boundary_value, aby nie przekroczyć 999.Liczba partycji tworzone jest równa n + 1.Wartości nie muszą być wymienione w kolejności.Jeśli wartości nie są w kolejności, Aparat baz danych sortuje je, funkcjatworzy i zwraca wartość ostrzeżenie, że wartości nie są dostarczane w kolejności.Aparat bazy danych zwraca błąd, jeśli n zawiera wszystkie zduplikowane wartości.

  • LEFT | PO PRAWEJ STRONIE
    Określa, która strona każdego przedziału wartości graniczne, lewo lub prawo, boundary_value**,**...n należy, gdy wartości interwału są sortowane według Aparat baz danych rosnąco od lewej do prawej.Jeśli nie jest określony, lewej jest domyślnie.Aby uzyskać więcej informacji, zobacz Przykłady.

Uwagi

zakres funkcja partycji jest ograniczony do bazy danych, który jest tworzony w.W bazie danych funkcje partycji znajdują się w oddzielnej przestrzeni nazw z innych funkcji.

Wszystkie wiersze, których partycjonowanie kolumna nie ma wartości null są umieszczane w partycji najbliżej lewej krawędzi, chyba że określona wartość NULL jako wartość graniczna i wskazane jest po prawej stronie.W tym przypadekpusty partycją jest partycja najbliżej lewej krawędzi, a wartości NULL są umieszczane w następującej partycji.

Uprawnienia

Jeden z następujących uprawnień umożliwia wykonać Tworzenie funkcji PARTYCJI:

  • ZMIEŃ DOWOLNE DATASPACE uprawnienia.To uprawnienie jest domyślnie członkami sysadmin stała rola serwera i db_owner i db_ddladmin ról stałej bazy danych.

  • FORMANT lub ZMIEŃ uprawnienie do bazy danych, w którym utworzona partycja funkcja .

  • FORMANT serwera lub ALTER DATABASE dowolny uprawnień na serwerze bazy danych, w którym utworzona partycja funkcja .

Przykłady

A.Tworzenie partycji LEFT zakres funkcja int kolumna

Partycja następujących funkcja będzie partycji tabela lub indeks do czterech partycji.

CREATE PARTITION FUNCTION myRangePF1 (int)
AS RANGE LEFT FOR VALUES (1, 100, 1000);

W poniższej tabela pokazano, jak to jest używane w tabela partycji funkcja na partycjonowanie kolumna Kol1 może być podzielone na partycje.

Partycja

1

2

3

4

Wartości

col1 <=1

col1 > 1 AND col1 <=100

col1 > 100 AND col1 <=1000

Kol1> 1000

B.Tworzenie partycji prawo zakres funkcja int kolumna

Następujące partycji funkcja używa tej samej wartości boundary_value**,**...n w poprzednim przykładzie, z wyjątkiem określa zakres po prawej stronie.

CREATE PARTITION FUNCTION myRangePF2 (int)
AS RANGE RIGHT FOR VALUES (1, 100, 1000);

W poniższej tabela pokazano, jak to jest używane w tabela partycji funkcja na partycjonowanie kolumna Kol1 może być podzielone na partycje.

Partycja

1

2

3

4

Wartości

Kol1 < 1

col1 >= 1 AND col1 < 100

col1 >= 100 AND col1 < 1000

col1 >=1000

C.Tworzenie partycji prawo zakres funkcja datetime kolumna

Partycja następujących funkcja partycji tabela lub indeksu na partycje 12, jeden dla każdego miesiąca roku, przez które wartości w datetime kolumna.

CREATE PARTITION FUNCTION [myDateRangePF1] (datetime)
AS RANGE RIGHT FOR VALUES ('20030201', '20030301', '20030401',
               '20030501', '20030601', '20030701', '20030801', 
               '20030901', '20031001', '20031101', '20031201');

W poniższej tabela pokazano, jak funkcja na partycjonowaniekolumnapartycji tabela lub indeksu, który używa tegodatecol może być podzielone na partycje.

Partycja

1

2

...

11

12

Wartości

datecol < February 1, 2003

datecol >= February 1, 2003 i datecol < March 1, 2003

datecol >= November 1, 2003 AND col1 < December 1, 2003

col1 >=December 1, 2003

D.Tworzenie partycji funkcja char kolumna

Partycja następujących funkcja partycji tabela lub indeks do czterech partycji.

CREATE PARTITION FUNCTION myRangePF3 (char(20))
AS RANGE RIGHT FOR VALUES ('EX', 'RXE', 'XR');

W poniższej tabela pokazano, jak to jest używane w tabela partycji funkcja na partycjonowanie kolumna Kol1 może być podzielone na partycje.

Partycja

1

2

3

4

Wartości

col1 < EX...

col1 >= EX AND col1 < RXE...

col1 >= RXE AND col1 < XR...

col1 >=XR