SQL Server で、インデックス付きビューを作成する方法

https://www.projectgroup.info/tips/SQLServer/MSSQL_00000034.html
ポイントは、WITH SCHEMABINDINGオプションを使用して作成すること。
また、テーブル、ビューは[dbo].[名前]形式で指定すること。



https://qiita.com/emotu/items/4653d610c0925504b10a

インデックス付Viewは、作成のSQLだけ通ればめでたしめでたしというわけにもいかないです。。
インデックス付Viewの元テーブルに更新をかけてるクエリやストアド実行時のSETオプション次第では、クエリ実行がエラー終了してしまうという恐ろしい罠があります。

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
上記2オプションが必須です。


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

    • ビューを作成する

CREATE VIEW [dbo].[ビュー名] WITH SCHEMABINDING
AS
SELECT COL001
,COL002
,COL003
,COL004
FROM dbo.TABLE_A

CREATE UNIQUE CLUSTERED INDEX PK_インデックス名
ON dbo.ビュー名 ( COL001,COL002 )

CREATE NONCLUSTERED INDEX IDX_インデックス名
ON dbo.ビュー名 ( COL003,COL004 )