Null Date는 어떻게보기에서 무효화 되었습니까?
-
21-12-2019 - |
문제
dbo.Traffic
트래픽 데이터를 일별로 집계하려고합니다.Schemabound보기를 만들고 색인을 추가 할 계획입니다.
CREATE VIEW [dbo].[vwTraffic] WITH SCHEMABINDING AS
SELECT CONVERT(date, CreateDate) as CreateDate, Circuit, Fuseaction,
COUNT(CreateDate) AS activity
FROM dbo.Traffic WITH (NOLOCK)
GROUP BY CONVERT(date, CreateDate), Circuit, Fuseaction
.
기본 테이블에서 createDate는 nullable이 아닙니다.그러나보기를 만들고 그것을 날짜로 변환하는 즉시, 괜찮아 질 수 있습니다.
해결책
이는 계산 된 열이 Nullability에서 작동하는 방법 때문입니다. MSDN :
에서 확인하십시오.데이터베이스 엔진은 사용 된 표현식을 기반으로 계산 된 열의 nullability를 자동으로 결정합니다. 대부분의 표현식의 결과는 가능한 한 해저 플로우 또는 오버 플로우가 NULL의 결과를 생성하기 때문에 아닌 컬럼 만 존재하더라도 무효로 간주됩니다. ColumnProperty 함수를 allowNull 속성과 함께 사용하여 테이블의 계산 된 열의 nullability를 조사하십시오. isnull (check_expression, constant)을 지정하여 nullable이 불가능한 표현식을 지정할 수없는 표현식으로 변환 할 수 있습니다. 여기서 상수는 널 결과 에 대해 대체되지 않은 값이 아닌 값입니다.
이를 CreateDate
로 사용할 수 있습니다. NULL
가 아닌 경우 일정한 가치에 대해 걱정할 필요가 없습니다.
ISNULL(CONVERT(date, CreateDate),0) as CreateDate
. 제휴하지 않습니다 StackOverflow