2010-07-28 60 views
15

我有以下重點:如何刪除聚簇屬性,但保留表中的主鍵。 SQL Server 2005中

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

,所以我有聚集索引和ID列主鍵。 現在我需要刪除聚集索引(我想在另一列上創建新的聚集索引),但保留主鍵。 這可能嗎?

+0

我同意@Demas但你是什麼版本的SQL Server? (如企業/標準)。你需要擔心併發用戶嗎?在表上還有其他非聚集索引嗎? – 2010-07-28 07:47:48

回答

17

這是不可能在一個聲明,但因爲DDL是事務性的MSSQL中,你可以簡單地做一個事務中的一切,以防止訪問表中的其他會議,而它沒有主鍵:

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

真棒解決方案!非常感謝 – skaeff 2010-07-28 11:08:41

3

這是不可能的,因爲索引是約束的物理實現。

相關問題