2010-07-28 15 views
15

tengo la siguiente clave:Cómo eliminar propiedad en clúster pero conservar la clave principal en una tabla. SQL Server 2005

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

índice de modo que he agrupado y la clave principal en la columna ID. Ahora necesito soltar el índice agrupado (quiero crear un nuevo índice agrupado en otra columna), pero conservar la clave principal. ¿Es posible?

+0

Estoy de acuerdo con @Demas, pero ¿en qué edición de SQL Server estás? (por ejemplo, Enterprise/Standard). ¿Tienes que preocuparte por los usuarios concurrentes? ¿Tiene otros índices no agrupados sobre la mesa? –

Respuesta

17

No es posible en una declaración, sino porque DDL es transaccional en MSSQL, sólo tiene que hacer todo dentro de una transacción para evitar que otras sesiones de acceso a la tabla si bien no tiene clave primaria:

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

increíble solución !!! Muchas gracias – skaeff

3

No es posible, ya que el índice es una implementación física de la restricción.

Cuestiones relacionadas