Aracılığıyla paylaş


PARTITION işlev (Transact-SQL) ALTER

bölümleme işlevi, bölme veya sınır değerlerini birleştirme değiştirir.ALTER yürütülüyor tarafından bölümleme işlevi, herhangi bir tablo ya da kullanan bir dizin bölümünü bölümleme işlevi iki bölüme ayırmak veya iki bölüm bir daha az bir bölüm birleştirilebilir.

Uyarı

Birden çok tablo ya da dizin aynı kullanabilirsiniz bölümleme işlev.ALTER bölümleme işlevi tümünün tek bir işlemle etkiler.

Topic link iconTransact-SQL sözdizimi kuralları

ALTER PARTITION FUNCTION partition_function_name()
{ 
    SPLIT RANGE ( boundary_value )
  | MERGE RANGE ( boundary_value ) 
} [ ; ]

Bağımsız değişkenler

  • partition_function_name
    Adı bölümleme işlevi değiştirilecek.

  • (SPLIT ARALıKboundary_value )
    Adds one partition to the partition function.boundary_value determines the range of the new partition, and must differ from the existing boundary ranges of the partition function.Temel boundary_value, Database Engine Varolan aralıklardan birini ikiye böler. Bu iki, bir where yeni boundary_value bulunduğu yeni bir bölüm olarak kabul edilir.

    Important noteImportant Note:

    Bir dosya grubu çevrimiçi bulunmalıdır ve kullanan bölümleme düzeni işaretlenmesi bölümleme işlevi olarak yeni bölüme tutulacağı NEXT KULLANıLAN.Bir CREATE bölümlerinde Filegroups tahsis edilen bölümleme düzeni deyim.Gereken'den daha fazla dosya gruplarını bir CREATE PARTITION DÜZENI deyim ayırır, (daha az bir bölüm OLUşTURMA içinde oluşturulan bölümleme işlevi deyim bunları saklamak için dosya gruplarını daha), sonra da varsa, dosya gruplarını, atanmamış ve bunlardan birini NEXT KULLANıLAN bölümleme düzeni tarafından işaretlenmiş.Bu dosya grubu yeni bir bölüm tutacaktır.Hiçbir dosya gruplarını NEXT KULLANıLAN bölümleme düzeni tarafından işaretlenmiş, varsa, bir dosya grubu ekleyin veya yeni bir bölüm tutmak için varolan bir belirlemek için ALTER PARTITION DÜZENI'ni kullanmalısınız.Bölümleri taşıyan BIR dosya grubu ek bölümler tutulacağı belirlenebilir.bölümleme işlevi, birden fazla bölümleme düzeni katılabilirsiniz çünkü bölümleri ekleme bölüm işlevini kullanan tüm bölüm düzenlerini NEXT KULLANıLAN bir dosya grubu olması gerekir.Aksi halde, ALTER PARTITION işlev düzenlerinden NEXT KULLANıLAN bir dosya grubu eksik ya da bölümleme düzeni görüntüleyen bir hata ile başarısız olur.

  • MERGE [ aralık ( boundary_value) ]
    Bir bölüm bırakır ve bölümün kalan bölümleri birine kayıtlı tüm değerleri birleştirir.ARALIK)boundary_value) içine atlanan bölüm değerleri birleştirilmiş varolan bir sınır değeri olmalıdır. Özgün olarak tutulan dosya grubu boundary_value kalan bölümü tarafından kullanılan veya NEXT KULLANıLAN özellik ile işaretlenen bölümü düzeninden kaldırılır. The merged partition resides in the filegroup that originally did not hold boundary_value.boundary_value is a constant expression that can reference variables (including user-defined type variables) or functions (including user-defined functions).It cannot reference a Transact-SQL expression.boundary_valuemust either match or be implicitly convertible to the data type of its corresponding partitioning column, 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.

Remarks

ALTER bölümleme işlevi tüm tablolar ve dizinler, tek bir atomik işlem işlevini kullanan repartitions.Ancak, bu işlem, çevrimdışı ve bağlı olarak, yeniden bölümlendirmeden, kapsam oluşur, kaynak yoğun olabilir.

ALTER bölümleme işlevi yalnızca bir bölüm ikiye bölme veya iki bölüm bir birleştirme için kullanılabilir.Bir tablo, yoksa (örneğin, 10 bölümleri 5 bölümü arasında) bölümlendirilir şeklini değiştirmek için , aşağıdaki seçeneklerden birini dikkatli.Bu seçenekler, sistem yapılandırmasına bağlı olarak, kaynak tüketimi değişebilir:

  • Yeni bölümlenmiş bir tablo ile istenen oluşturma bölümleme işlevi, sonra verileri eski tablodan yeni tabloya bir INSERT INTO... SELECT FROM deyim kullanarak ekleyin.

  • Bir yığında bölümlendirilmiş bir kümelenmiş dizin yarat

    Not

    Bölümlendirilmiş bir kümelenmiş dizin siliniyor bölümlendirilmiş bir yığın içinde oluşur.

  • Bırakma ve varolan bölümlendirilmiş bir dizini kullanarak yeniden Transact-SQL CREATE INDEX deyim ile DROP EXISTING yan tümcesini =.

  • Bir dizi ALTER gerçekleştirmek bölümleme işlevi deyimleri.

ALTER PARITITION işlev tarafından etkilenen tüm dosya gruplarını çevrimiçi olması gerekir.

ALTER bölümleme işlevi olduğunda devre dışı bırakılmış kümelenmiş dizin üzerinde herhangi bir başarısız tabloları kullanan bölümleme işlevi.

SQL Server 2008 değiştirmek için çoğaltma desteği sağlamayan bir bölümleme işlevi.bölümleme işlevi Yayın veritabanında yapılan değişiklikler, abonelik veritabanında el ile uygulanması gerekir.

İzinler

Aşağıdaki izinlerden birini ALTER yürütmek için kullanılan bölümleme işlevi:

  • ALTER ANY DATASPACE izindir.Bu izin, üyeleri için varsayılan sysadmin sabit sunucu rolü ve db_owner and db_ddladmin veritabanı rollerini sabit.

  • DENETIM veya ALTER veritabanı, izni bölümleme işlev oluşturuldu.

  • Sunucu DENETIM SERVER'ı veya ALTER ANY DATABASE iznine, veritabanının bölümleme işlev oluşturuldu.

Örnekler

C.bölümlenmiş tablo ya da dizin bölümü iki bölüm bölme

The following example creates a partition function to partition a table or index into four partitions.ALTER PARTITION FUNCTION splits one of the partitions into two to create a total of five partitions.

b.bölümlenmiş tablo iki bölüm bir bölüm birleştiriliyor

Aşağıdaki örnek, aynı bölüm işlev yukarıdaki oluşturur ve sonra iki bölümlerinin toplam üç bölüm olarak bir bölüm birleştirir.