Я обнаружил, что представления действительно могут возвращать ошибочные данные при извлечении данных из другой базы данных. Например, в моей настройке у меня есть представление, которое делает простой выбор из таблицы на другой базе данных:
SELECT status FROM otherdb.dbo.mytable_t
и это возвращает:
NULL
ПРИНЯТ
AWAITRTR
IMPORTOK
IMPORTPB
INPROGRE
REJECTED
Однако выполнение состояния SELECT FROM mytable_t для otherdb возвращает:
ACTIVE
AFS
CHANGE
ПРОЕКТ
PENDCONF
PENDINIT
ОБЗОР
TERM
Единственный способ убедиться, что представление возвращает те же данные, что и SELECT в этом сценарии, - удалить и заново создать представление.
Я видел это довольно много раз на SQL Server 2000, 2005 и 2008.