我有以下重點:如何刪除聚簇屬性,但保留表中的主鍵。 SQL Server 2005中
ALTER TABLE dbo.Table ADD CONSTRAINT PK_ID PRIMARY KEY CLUSTERED
(
ID ASC
)
,所以我有聚集索引和ID列主鍵。 現在我需要刪除聚集索引(我想在另一列上創建新的聚集索引),但保留主鍵。 這可能嗎?
我有以下重點:如何刪除聚簇屬性,但保留表中的主鍵。 SQL Server 2005中
ALTER TABLE dbo.Table ADD CONSTRAINT PK_ID PRIMARY KEY CLUSTERED
(
ID ASC
)
,所以我有聚集索引和ID列主鍵。 現在我需要刪除聚集索引(我想在另一列上創建新的聚集索引),但保留主鍵。 這可能嗎?
這是不可能在一個聲明,但因爲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
真棒解決方案!非常感謝 – skaeff 2010-07-28 11:08:41
這是不可能的,因爲索引是約束的物理實現。
我同意@Demas但你是什麼版本的SQL Server? (如企業/標準)。你需要擔心併發用戶嗎?在表上還有其他非聚集索引嗎? – 2010-07-28 07:47:48