У меня есть представление, которое внутренне ссылается на несколько таблиц и представлений. В нем есть поле из одного из упомянутых представлений. Но он продолжает переключаться с NOT NULL на NULL и наоборот каждый раз, когда мы отбрасываем создание представления. Вот извлеченное определение представления с минимально необходимыми объектами
Table_A имеет структуру как UniqueId (uniqueidentifier not null), Atrribute1 (INT null)
View_B имеет структуру как Atrribute1 (int не null), SubAttribute1 (int not null)
`
Create View dbo.View_X
as
select a.UniqueId, A.Atrribute1, B.SubAttribute1
from dbo.Table_A AS A
INNER JOIN dbo.View_B AS B ON A.Atrribute1 = B.Atrribute1
`
Из этого dbo.Table_A и dbo.View_B остаются нетронутыми. Но когда мы отбрасываем create View_X, иногда SubAttribute1 является полем, допускающим значение NULL, а иногда не допускающим значения NULL. Я не уверен, почему свойство поля, допускающее значение NULL, изменяется так случайно, когда подчеркнутые объекты остаются нетронутыми. в идеале SubAttribute1 не должен допускать значения NULL в View_X, поскольку он не допускает значения NULL в View_B и ВНУТРЕННЕЕ СОЕДИНЕНИЕ с базовой таблицей.
Это вызывает проблему в тестовых примерах TSQLT, где я проверяю структуру представления. происходит случайный сбой из-за переворота NULL / NOT NULL.