Оператор SQL Server 2008 CONVERT в VIEW делает тип данных NULL в определении столбца - PullRequest
2 голосов
/ 08 июля 2011

Вот мой пример представления (надуманный, я знаю, но показывает мою проблему):

CREATE VIEW NullTest
AS
SELECT
    1 AS IntNoConvert, 
    CONVERT(BIT, 1) AS IntConvert, 
    CAST(1 AS BIT) AS IntCast

Окончательные представления в качестве типов данных:

IntNoConvert (int, not null)
IntConvert (bit, null)
IntCast (bit null)

Итак, CONVERT и CASTсделать столбец допускающим значения NULL - обычно это не проблема в представлениях, но я использую LinqToSql поверх этого, мне нужно, чтобы типы данных были NOT NULL.

Любые идеи о том, как заставить оператор CONVERT возвращать данные как НЕNULL

1 Ответ

3 голосов
/ 08 июля 2011

Используйте функцию SQL IsNull , чтобы обеспечить отсутствие обнуления:

CREATE VIEW NullTest
AS
SELECT
    1 AS IntNoConvert, 
    IsNull(CONVERT(BIT, 1), 1) AS IntConvert, 
    IsNull(CAST(1 AS BIT), 1) AS IntCast

Это выглядит немного странно, поэтому я согласен с комментарием a1ex07 о том, что вместо этого вы должны определить необнуляемость в вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...