Поле в представлении переключается с NULL на NOT NULL и наоборот при удалении и создается случайным образом - PullRequest
0 голосов
/ 07 мая 2020

У меня есть представление, которое внутренне ссылается на несколько таблиц и представлений. В нем есть поле из одного из упомянутых представлений. Но он продолжает переключаться с 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.

...