Para agregar una nota muy importante sobre lo que Mark S. ha mencionado en su publicación. En el Script SQL específico que se ha mencionado en la pregunta, NUNCA puede mencionar dos grupos de archivos diferentes para almacenar sus filas de datos y la estructura de datos de índice.
La razón se debe al hecho de que el índice que se crea en este caso es un índice agrupado en su columna de clave principal. Los datos de índice agrupados y las filas de datos de su tabla NUNCA pueden estar en diferentes grupos de archivos .
Entonces, en caso de que tenga dos grupos de archivos en su base de datos, por ejemplo, PRIMARY y SECONDARY, el script mencionado a continuación almacenará sus datos de fila y datos de índice agrupados tanto en el grupo de archivos PRIMARY como en el caso de que haya mencionado un grupo de archivos diferente ( [SECONDARY]
) para los datos de la tabla . Lo más interesante es que el script también se ejecuta con éxito (cuando esperaba que produjera un error, ya que había dado dos grupos de archivos diferentes: P). SQL Server hace el truco detrás de escena silenciosa e inteligentemente.
CREATE TABLE [dbo].[be_Categories](
[CategoryID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_be_Categories_CategoryID] DEFAULT (newid()),
[CategoryName] [nvarchar](50) NULL,
[Description] [nvarchar](200) NULL,
[ParentID] [uniqueidentifier] NULL,
CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED
(
[CategoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [SECONDARY]
GO
NOTA: Su índice puede residir en un grupo de archivos diferente SOLO si el índice que se está creando no es de naturaleza agrupada .
El siguiente script que crea un índice no agrupado se creará en [SECONDARY]
el grupo de archivos cuando los datos de la tabla ya residen en [PRIMARY]
el grupo de archivos:
CREATE NONCLUSTERED INDEX [IX_Categories] ON [dbo].[be_Categories]
(
[CategoryName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Secondary]
GO
Puede obtener más información sobre cómo almacenar índices no agrupados en un grupo de archivos diferente puede ayudar a que sus consultas funcionen mejor. Aquí hay uno de esos enlaces.