sql server - vistas - No se puede crear el índice en la vista ''View_Table_Name'' porque la vista no está enlazada al esquema
porque la vista no está enlazada a ningún esquema (2)
Estoy usando Vistas en mi Procedimiento almacenado (Servidor SQL). Para mejorar el rendimiento, he tratado de crear un índice de esa vista.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW VW_Table_Name
AS
SELECT Col1,Col2,Col3 FROM Table_Name
GO
CREATE UNIQUE CLUSTERED INDEX Index_Name ON [VW_Table_Name](Col1)
GO
Aquí estoy obteniendo el error como
Msj 1939, nivel 16, estado 1, línea 1 No se puede crear el índice en la vista ''VW_FML'' porque la vista no está enlazada al esquema.
¿Podemos crear un índice para ver en SQL Server?
Hay una serie de restricciones en las vistas indizadas: sin subconsultas, sin uniones, sin uniones externas, etc. Consulte este artículo para obtener más detalles. Pero para su caso, simplemente necesita crear la vista con el enlace del esquema.
CREATE VIEW VW_Table_Name WITH SCHEMABINDING
AS
SELECT Col1,Col2,Col3 FROM Table_Name
GO
Porque está intentando crear una vista indizada o una vista materializada . Es obligatorio para una vista tener la opción "CON SCHEMABINDING" si está creando un índice agrupado en la parte superior.
Una vista no es más que una consulta almacenada; si va a crear un índice en ella, el índice usará esa consulta y la ejecutará en esa tabla; en este caso, debe asegurarse de que la tabla no cambie. debajo. Por lo tanto, al aplicar esta restricción SQL Server se asegura de que todo permanezca sincronizado.