Создать вычисляемый столбец для даты и времени - PullRequest
2 голосов
/ 14 января 2009

В моей таблице SQL Server 2005 есть столбец DateTime со значением NULL, называемый DateTimeDeleted.

Я хотел бы иметь вычисляемый столбец типа BIT, равный 1, если DateTimeDeleted не равен NULL, в противном случае - 0. Однако мне не удается получить правильный синтаксис формулы.

Я пробовал:

(TsDeleted IS NULL) = 0

но это дает мне синтаксическую ошибку.

Помощь! :)

Ответы [ 3 ]

12 голосов
/ 14 января 2009
Alter Table MyTableName 
  Add IsDeleted As 
     (Case When [DateTimeDeleted] Is Null 
       Then (0) Else (1) End)

Будет выведено целое число ... Если вы действительно хотите, чтобы оно было немного, то:

Alter Table MyTableName 
  Add IsDeleted As 
     cast( (Case When [DateTimeDeleted] Is Null 
       Then (0) Else (1) End) as Bit)
2 голосов
/ 14 января 2009

Я думаю, что это должно работать:

update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
0 голосов
/ 14 января 2009

Это будет работать, в основном это делит само по себе, если оно не равно нулю, а затем делит 0 на 1, если оно равно NULL

CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
...