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);