Jag*_*esh 51 t-sql sql-server indexing view
我在我的存储过程(SQL-Server)中使用视图.为了提高性能,我尝试创建该视图的INDEX.
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
Run Code Online (Sandbox Code Playgroud)
在这里,我得到错误
消息1939,级别16,状态1,行1无法在视图'VW_FML'上创建索引,因为视图不是模式绑定的.
我们可以在SQL Server中创建View for View吗?
Joe*_*lli 75
索引视图有许多限制:没有子查询,没有联合,没有外连接等.有关更多详细信息,请参阅此文章.但是对于您的情况,您只需要使用模式绑定创建视图.
CREATE VIEW VW_Table_Name WITH SCHEMABINDING
AS
SELECT Col1,Col2,Col3 FROM Table_Name
GO
Run Code Online (Sandbox Code Playgroud)
小智 5
因为您正在尝试创建索引视图或物化视图。如果要在视图之上创建聚簇索引,则视图必须具有“ WITH SCHEMABINDING”选项。
视图只不过是一个存储的查询,如果要在其上创建索引,则该索引将使用该查询并在该表上执行该查询,在这种情况下,必须确保该表没有更改下。因此,通过强制执行此约束,SQL Server确保一切保持同步。
| 归档时间: |
|
| 查看次数: |
76341 次 |
| 最近记录: |