SQL Server INFORMATION_SCHEMA.VIEW_COLUMN_USAGE не обновляется при обновлении таблицы

Я пытаюсь узнать больше о SQL Server, и я наткнулся на то, что я не понимаю. У меня есть база данных SQL Server 2008 (бесплатная версия). У меня есть представление, которое я определил, используя подстановочный знак, как это:

Select * from ApplicantApplications

Когда я проверил системное представление "INFORMATION_SCHEMA.VIEW_COLUMN_USAGE", там были все столбцы из определенного мной представления.

Позже я обновил таблицу ApplicantApplication и добавил поле "TestValue"

Когда я оглянулся назад на системное представление "INFORMATION_SCHEMA.VIEW_COLUMN_USAGE", нового столбца, который я добавил в таблицу, там не было. Представление, которое я определил, содержит новый столбец.

Нужно ли делать что-то особенное, чтобы этот столбец появлялся в системном представлении? Я думал, что это будет обновляться автоматически.

Спасибо!

1 ответ

Решение

Для просмотра требуется перекомпиляция EXEC sp_refreshview Viewname. лет назад я написал сценарий для этой цели

Declare @Name varchar(200)
Declare @SQL varchar(300)
DECLARE VCalc CURSOR FOR  Select name from sysobjects
OPEN VCalc
FETCH Next FROM VCalc INTO @Name
WHILE (@@FETCH_STATUS = 0)
    BEGIN
    Select @SQL='if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].'+@Name+''') and OBJECTPROPERTY(id, N''IsView'') = 1) EXEC sp_refreshview '+@Name
    Print @SQL
    Exec (@SQL)
    FETCH Next FROM VCalc INTO @Name
    END
CLOSE VCalc
DEALLOCATE VCalc
Другие вопросы по тегам