3

Sql Server 2005 でビューにインデックスを追加しようとしたところ、次のエラーが発生しました。

過負荷になる可能性があるため、ここにあまり多くの情報を入れたくありませんでした。誰かが私に助けをくれるかどうか疑問に思っています。

エラーが表示された URL にアクセスしましたが、どこにも行きませんでした。完全なエラーは以下のとおりです。

すべての情報を提供していないため、本当の答えを出すことができないことは承知しています。申し訳ありません。

タイトル: Microsoft SQL Server Management Studio
------------------------------

インデックス 'IX_AssignmentId' の作成に失敗しました。(Microsoft.SqlServer.Smo)

ヘルプについては、http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Create+Index&LinkId=20476 をクリックしてください。

------------------------------
追加情報:

Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo)

------------------------------

ビューがスキーマにバインドされていないため、ビュー 'AllAssignmentNotes' にインデックスを作成できません。(Microsoft SQL Server、エラー: 1939)

ヘルプについては、http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=1939&LinkId=20476 をクリックしてください。

------------------------------
ボタン:

わかった
------------------------------
4

3 に答える 3

5

エラーが示すように、スキーマにバインドされていないビューにインデックスを作成することはできません。ビューをスキーマバインドするには

create view with schemabinding.

ビュー内で参照されるすべてのテーブルは、テーブルだけでなく、スキーマ名、つまり dbo.table で完全修飾する必要があります。

于 2009-05-19T19:48:49.003 に答える
1

ビューを WITH SCHEMABINDING で作成したと仮定すると、CREATE INDEX ステートメントを実行するときに、接続設定でこれらの SET オプションを ON に設定する必要がある可能性があります。

ANSI_NULLS 
ANSI_PADDING 
ANSI_WARNINGS 
ARITHABORT 
CONCAT_NULL_YIELDS_NULL 
QUOTED_IDENTIFIERS 

NUMERIC_ROUNDABORT オプションは OFF に設定する必要があります。

于 2009-05-19T19:50:51.837 に答える