2010-07-28 16 views
15

i var anahtar aşağıdadır:Kümelenmiş özellik nasıl açılır, ancak bir tablodaki birincil anahtarı nasıl atar. SQL Server 2005

ALTER TABLE dbo.Table ADD CONSTRAINT PK_ID PRIMARY KEY CLUSTERED 
(
ID ASC 
) 

yüzden kümelenmiş olan endeks ve kimlik sütunu birincil anahtar. Artık kümelenmiş dizini (başka bir sütunda yeni kümelenmiş dizin oluşturmak istiyorum) bırakmalıyım, ancak birincil anahtarı korumalıdır. Mümkün mü?

+0

ben katılıyorum @Demas ama SQL Server'ın hangi sürümü üzerinde çalışıyorsunuz? (ör. Kurumsal/Standart). Eşzamanlı kullanıcılar için endişelenmeli mi? Tabloda başka kümelenmemiş dizinleriniz var mı? –

cevap

17

Bu bir açıklamada mümkün değil, ama DDL MSSQL işlem olduğu için, sadece hiçbir birincil anahtara sahip iken tablo erişen diğer oturumları önlemek için bir hareket içinde her şeyi yapabilirsiniz:

begin tran 
alter table dbo.[Table] drop constraint pk_id 
alter table dbo.[Table] add constraint pk_id primary key nonclustered (id) 
commit tran 
+0

müthiş çözüm! Çok teşekkürler – skaeff

3

Dizinin kısıtlamanın fiziksel bir uygulaması olduğu için, bu mümkün değildir.