CREATE bölümleme işlevi (Transact-SQL)
Geçerli veritabanındaki bir tablo ya da dizin satırları, belirtilen değerlere göre bölümlere eşleştiren bir işlev oluşturur sütun.CREATE kullanarak bölümleme işlevi bölümlenmiş bir tablo ya da dizin oluşturmanın ilk adımıdır.
CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type )
AS RANGE [ LEFT | RIGHT ]
FOR VALUES ( [ boundary_value [ ,...n ] ] )
[ ; ]
Bağımsız değişkenler
partition_function_name
Adı bölümleme işlevi.bölümleme işlevi adı veritabanı içinde benzersiz olması gerekir ve kurallarına uymaktanımlayıcılar.input_parameter_type
Bölümleme için kullanılan sütunun veri türü değil.Tüm veri türleri için geçerli kullanmak dışında sütunlar, bölümleme olaraktext,ntext,image,xml,timestamp,varchar(max),nvarchar(max),varbinary(max)diğer ad ad veri türleri ve CLR kullanıcı tanımlı veri türleri.CREATE tablo veya CREATE INDEX bölümleme bir sütun olarak bilinen gerçek sütununda belirtilen deyim.
boundary_value
Belirtir sınır değerleri bölümlenmiş bir tablo ya da dizin kullanan her bölüm içinpartition_function_name.Ifboundary_valueise boş, bölüm işlev tüm tablo veya dizini kullanarak eşlerpartition_function_nametek bir bölüm.CREATE tablo veya CREATE INDEX deyiminde belirtilen tek bölümleme sütun kullanılabilir.boundary_value değişkenleri başvurabilir sabit bir ifade değil.Bu tür kullanıcı tanımlı değişkenleri, işlevleri veya kullanıcı tanımlı işlevler içerir.It cannot reference Transact-SQL expressions.boundary_value must either match or be implicitly convertible to the data type supplied in input_parameter_type, and cannot be truncated during implicit conversion in a way that the size and scale of the value does not match that of its corresponding input_parameter_type.
Not
Ifboundary_valueoluşurdatetimeorsmalldatetimerakamları, bu harflerin değerlendirilir varsayarak us_english olan oturum dili.Bu davranış önerilmiyor.Emin olmak için bölümleme işlevi tanımı, tüm oturum diller için beklendiği gibi davranır, yyyyaagg biçimi gibi; tüm dil ayarları ile aynı şekilde yorumlanır veya hazır belirli bir stil için açıkça dönüştürme sabitleri kullanmanız önerilir.Daha fazla bilgi için bkz:Uluslararası Transact-SQL deyimleri yazma.Sunucunuzun dil oturum belirleme çalışmasıSELECT @@LANGUAGE.
...n
Tarafından sağlanan değerlerin sayısını belirtirboundary_value, 999 aşamaz.Oluşturulan bölüm sayısı eşittirn+ 1.Değerleri sırada listelenmesi gerekmez.Değerleri sırasıyla değilse,Database Enginebunları sıralar işlev oluşturur ve değerlerini değil sipariş. sağlanan bir uyarı verirThe veritabanı altyapısı, bir hata döndürürniçeren yinelenen bir değer.Sol | Sağ
Specifies to which side of each boundary value interval, left or right, the boundary_value [ ,... n ] belongs, when interval values are sorted by the Database Engine in ascending order from left to right.If not specified, LEFT is the default.Daha fazla bilgi için bkz:Örnekler.
Remarks
kapsam bir bölümleme işlevi de oluşturulan veritabanı sınırlıdır.Veritabanı içinde bölüm işlevler diğer işlevler ayrı bir ad bulunur.
Bölümleme, sütun null değerlere sahip satırlar boş bir sınır değeri olarak belirlenir ve sağ gösterdiği sürece en sol bölümünde yerleştirilir.Bu durumda en soldaki bölümü boş bir bölümdür ve NULL değerleri aşağıdaki bölümde yer alır.
İzinler
CREATE çalıştırmak için aşağıdaki izinlerden herhangi biri kullanılabilir bölümleme işlevi:
ALTER ANY DATASPACE izni.Üyeleri için varsayılan izinSistem Yöneticisi sabit sunucu rolü ve db_ownerdb_ddladmin sabit veritabanı rolü.
Veritabanı, Denetim ya da ALTER iznine bölümleme işlev oluşturulmaktadır.
Veritabanı, sunucu üzerinde CONTROL SERVER ya da ALTER ANY DATABASE izin bölümleme işlev oluşturulmaktadır.
Örnekler
C.Aralık sol oluşturma bölümleme işlev bir int sütun
Aşağıdaki bölümleme işlev dört bölüme bir tablo ya da dizin bölümü olur.
Bunu kullanan bir tablo nasıl gösterildiği aşağıdaki tablo bölümleme işlevi bölümleme sütun,col1 bölümlenmiş.
Bölüm |
1 |
2 |
3 |
4 |
---|---|---|---|---|
Values |
col1 <= 1 |
col1 > 1 AND col1 <= 100 |
col1 > 100 AND col1 <=1000 |
col1 > 1000 |
B.Aralık sağ oluşturma bölümleme işlev bir int sütun
The following partition function uses the same values for boundary_value [ ,... n ] as the previous example, except it specifies RANGE RIGHT.
Bunu kullanan bir tablo nasıl gösterildiği aşağıdaki tablo bölümleme işlevi bölümleme sütun,col1 bölümlenmiş.
Bölüm |
1 |
2 |
3 |
4 |
---|---|---|---|---|
Values |
col1 < 1 |
col1 >= 1 AND col1 < 100 |
col1 >= 100 AND col1 < 1000 |
col1 >= 1000 |
C.Aralık sağ oluşturma bölümleme işlev bir tarih sütun
Aşağıdaki bölümleme işlev değerlerini tutulacak bir yılın her ayı için 12 bölümlerinde bir tablo ya da dizin bölümlerini birdatetimesütun.
Bir tablo ya da bunu kullanan dizin nasıl gösterildiği aşağıdaki tablo bölümleme işlevi bölümleme sütun,datecol bölümlenmiş.
Bölüm |
1 |
2 |
... |
11 |
12 |
---|---|---|---|---|---|
Values |
datecol < February 1, 2003 |
datecol >= February 1, 2003 AND datecol < March 1, 2003 |
datecol >= November 1, 2003 AND col1 < December 1, 2003 |
col1 >= December 1, 2003 |
D.Oluşturma bir bölümleme işlev bir char sütun
Aşağıdaki bölüm işlev, dört bölüme bir tablo ya da dizin bölümleri.
Bunu kullanan bir tablo nasıl gösterildiği aşağıdaki tablo bölümleme işlevi bölümleme sütun,col1 bölümlenmiş.
Bölüm |
1 |
2 |
3 |
4 |
---|---|---|---|---|
Values |
col1 < EX... |
col1 >= EX AND col1 < RXE... |
col1 >= RXE AND col1 < XR... |
col1 >= XR |
See Also