Сохраняются ли вычисленные столбцы в представлении? - PullRequest
1 голос
/ 09 октября 2011
CREATE VIEW [dbo].[MyView] ([ID],[VisitDate],[StartDate] ,[EndDate])
WITH SCHEMABINDING  

    AS
    SELECT     id, VisitDate,dateadd(dd,-10,VisitDate)persisted,
       dateadd(dd,10,VisitDate)persisted
    FROM         dbo.Visits

У меня есть некластеризованный индекс по идентификатору и VisitDate. Я хотел бы знать, сохраняются ли вычисляемые столбцы StartDate и Enddate или рассчитывается время выполнения при обращении к представлению

ПРАВКА: что если у меня есть уникальный кластеризованный индекс по ID и VisitDate. В таком случае эти столбцы станут постоянными?

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

По вашему мнению, значения рассчитываются во время выполнения.Слово «сохранено» там обрабатывается как имя столбца, а не как специальное ключевое слово.

Если вы хотите создать вычисляемые столбцы, которые сохраняются, это необходимо сделать как часть определения таблицы, либо вОператор CREATE TABLE или оператор UPDATE TABLE.Вы также можете рассмотреть возможность использования индексированного представления.

Подробнее см. В документации:

1 голос
/ 12 октября 2017

Да.

Набор результатов индексированного представления физически сохраняется в базы данных аналогично типичному хранилищу таблиц.

https://technet.microsoft.com/en-us/library/dd171921(v=sql.100).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...