Проверьте, может ли столбец представления содержать ноль - PullRequest
0 голосов
/ 05 ноября 2019

Как программно узнать, является ли столбец представления обнуляемым или нет?

http://sqlfiddle.com/#!18/b43f2

create table tbl
(
  a int not null,
  b int null,
  c int not null,
  d int null
)
create view vw as select
  a,
  b,
  iif(c = 1, null, c) as c,
  coalesce(d, a) as d
from tbl

Ответы [ 2 ]

2 голосов
/ 05 ноября 2019

Вы можете проверить это, используя метод COLUMNPROPERTY с сервера SQL

SELECT COLUMNPROPERTY(OBJECT_ID('SchemaName.ViewName', 'V'), 'ColumnName', 'AllowsNull');

Замените schemaName.ViewName схемой базы данных и именем представления, например, dbo.vw, и замените ColumnName, например, c:

SELECT COLUMNPROPERTY(OBJECT_ID('dbo.v', 'V'), 'c', 'AllowsNull');
2 голосов
/ 05 ноября 2019

Можете ли вы узнать это из sys объектов:

SELECT c.[name],
       c.is_nullable
FROM sys.columns c
     JOIN sys.views v ON c.object_id = v.object_id
WHERE v.name = N'vw';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...