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