Индексированное представление в Sql Server 2005 Ошибка - PullRequest
3 голосов
/ 19 мая 2009

Я попытался добавить индекс для представления в Sql Server 2005, и у меня появилась эта ошибка: «Невозможно создать индекс для представления« AllAssignmentNotes », поскольку представление не привязано к схеме».

Я не хотел помещать здесь слишком много информации, поскольку это может быть перегрузка. Просто интересно, может ли кто-нибудь помочь мне.

Я пошел по URL, который дал мне ошибка, и ни к чему не привел. Полная ошибка ниже.

Я знаю, что вы не можете дать реальный ответ, потому что я не дал вам всю информацию, мои извинения.

TITLE: Microsoft SQL Server Management Studio
------------------------------

Create failed for Index 'IX_AssignmentId'.  (Microsoft.SqlServer.Smo)

For help, click: 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

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

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

Cannot create index on view 'AllAssignmentNotes' because the view is not schema bound. (Microsoft SQL Server, Error: 1939)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=1939&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Ответы [ 4 ]

5 голосов
/ 19 мая 2009

Как и в сообщении об ошибке, вы не можете иметь индекс для представления, которое не привязано к схеме. Для привязки схемы используйте

create view with schemabinding.

все таблицы, на которые ссылается представление, должны быть полностью объединены со схемой, то есть dbo.table, а не просто таблица

2 голосов
/ 19 мая 2009

В этой статье подробно объясняется привязка схемы.

http://www.mssqltips.com/tip.asp?tip=1610

1 голос
/ 20 мая 2009

Работа с индексированными представлениями была основной болью с момента их появления. Правила создания представления, поддерживающего индексацию, очень строги, а сообщения об ошибках бесполезны.

Вы должны проверить BOL http://msdn.microsoft.com/en-us/library/ms191432(sql.90).aspx

1 голос
/ 19 мая 2009

Если вы создали ваше представление с помощью SCHEMABINDING, тогда возможно, что в настройках соединения эти параметры SET должны быть установлены на ON при выполнении оператора CREATE INDEX:

ANSI_NULLS 
ANSI_PADDING 
ANSI_WARNINGS 
ARITHABORT 
CONCAT_NULL_YIELDS_NULL 
QUOTED_IDENTIFIERS 

Параметр NUMERIC_ROUNDABORT должен быть установлен на OFF.

...