with vistas vista una porque ningún indice index está esquema enlazada create crear como sql-server tsql view indexing

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.