У меня есть представление, которое я надеялся создать индекс, по которому происходит сбой, потому что мне нужно будет индексировать вычисляемый столбец (это не так с кодом ошибки 2729 "... не может использоваться в индексе или статистике или какключ разделения, потому что он недетерминирован ». Я надеюсь, что смогу заменить представление триггером или набором триггеров, которые будут поддерживать индексированную таблицу в. Представление довольно простое.
Учитывая таблицу:
CREATE TABLE SourceData (
ItemId int NOT NULL,
KeyId int NOT NULL,
Value varchar(MAX) NULL
)
Я создал представление:
CREATE VIEW DateView WITH SCHEMABINDING
AS
SELECT CONVERT(DATETIME, Value) As KeyDate,
ItemId FROM dbo.SourceData WHERE KeyId=123
Затем я пытаюсь создать индекс для представления:
CREATE NONCLUSTERED INDEX IX_DateView ON dbo.DateView (
[KeyDate] ASC
)
INCLUDE ( [ItemId])
, что не удается.
Я до сих пор не использовал триггеры, но я понимаю, что должен иметь возможность использовать их для обнаружения и фильтрации любых изменений в базовой таблице SourceData и применять их к новой таблице для замены DateView