primary nonclustered index ejemplo create clustered database sql-server-2008 primary-key clustered-index

database - nonclustered - primary key sql server



base de datos: clave principal, agrupada o no agrupada (1)

Estoy creando una base de datos en SQL Server 2008,

CREATE TABLE Users ( U_Id INT NOT NULL FirstName VARCHAR(50) NOT NULL, LastName VARCHAR(50) NOT NULL, Email VARCHAR(200) Password VARCHAR(50) )

Quiero hacer que U_Id sea la clave principal. Me gustaría preguntar cuál es la diferencia entre

CONSTRAINT pk_UserID PRIMARY KEY (U_Id)

esta

CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)

y esto

CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)

Cuándo usar cada uno?

Leí un artículo pero todavía no está claro para mí. ¿Puede alguien darme una explicación rápida?


La siguiente declaración:

CONSTRAINT pk_UserID PRIMARY KEY (U_Id)

Es lo mismo que este:

CONSTRAINT pk_UserID PRIMARY KEY CLUSTERED (U_Id)

Solo puede tener la física de datos de la tabla ordenada por uno de los índices, y de manera predeterminada ese índice es el utilizado para la clave primaria (la restricción única de clave primaria siempre es compatible con un índice).

Si desea dejar el orden de los datos de la tabla para ser almacenados de acuerdo con algún otro índice, entonces debe crear la clave principal con:

CONSTRAINT pk_UserID PRIMARY KEY NONCLUSTERED (U_Id)

Y luego crea el índice agrupado con:

CREATE CLUSTERED INDEX ix_Email ON Users (Email);