web-dev-qa-db-ja.com

ビューがスキーマバインドエラーではないため、ビューにインデックスを作成できません1939

私が取り組んでいるこの割り当ての3番目の部分は、「列OrderIDとEmployeeIDに基づいて、「dbo.Orders Qry」と呼ばれる既存のNorthwindビューを作成してインデックスを作成する」と述べています。

エラーが発生することが予想されます。しかし、私のインストラクターは私たちにそれをグーグルに伝えるだけでした。私はそうしましたが、スキームのバインドは今週のレッスンや他のどこにもありません、そして私が見つけたものは私には理解するには深すぎます。

これは、チェックボックスをオンにしない、またはどこかで設定を変更しないという問題ですか?

15
Sam

このような音はインデックス付きビューを説明しているので、Microsoftのサイト here で読むことができます。 Microsoftは、SQL 2005以降、この機能を有効にしました。

ビュー定義のテキストでは、WITH SCHEMABINDINGステートメントの直後にCREATE VIEWという単語を追加する必要があります。次に例を示します。

CREATE VIEW dbo.MyView
WITH SCHEMABINDING

AS

SELECT a, b, c
FROM dbo.MyTable

インデックスを追加するには、次のようなステートメントをビュー定義に追加します。

-- Create an index on the view.
CREATE UNIQUE CLUSTERED INDEX IDX_MyView_ClusteredIndex
ON dbo.MyView(a, b, c)

GO
24
Darth Continent

Darth Continentが投稿したものを正確に探していました。これは魅力のように機能しましたが、まったく異なる状況でした。上記の答えは少なくとも解決策として認められるべきであると私は信じています。

1
Anthony Mason