2010-01-07

Clustered Primary Key'i Nonclusted Yapma

Merhaba değerli okuyucu,

Geçenlerde clustered primary key contraint'ini nonclustured yapıya dönüştürme ihtiyacım oldu. İhtiyacımın temel sebebi de yanlış oluşturulan clustred bir primary key index'ini nonclustered yapıp farklı bir indexi clustered index'e çevirmek istememdi.

Bu işlemleri online bir sistemde gerçekleştirdiğimden daha titiz olmam gerekiyordu. Bu yüzden aşağıdaki adımları izledim:
  1. Primary key'ler unique olduğundan key yapısını bozmamak için temporary unique bir index oluşturdum,
  2. Tablo üstündeki Primary Key'i drop ettim
  3. Tabloya Primary Key constraint'ini ekledim
  4. İlk oluşturduğum temporary unique index e artık ihtiyacım kalmadığı için drop ettim.
Yukardaki ifadeler için gerekli olan sql kodları aşağıdaki gibidir:

--temp unique indexi online oluşturma
create unique nonclustered index tmpindex on tablo
(id) with (online=on) on primary
go

--online olarak primary key i drop etme
alter table tablo drop constraint pk_tablo with (online=on)
go

--nonclustered primary key i online olarak oluşturma
alter table tablo add constraint pk_tablo
primary key nonclustered (id) with (online=on) on primary
go

--temp index i drop etme
drop index tablo.tmpindex
go

.::YASAL UYARI::.

©2004-2023 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.