更改表时添加位列

时间:2018-08-07 05:01:35

标签: sql-server tsql calculated-columns alter

您好,我要在表格中添加新列

  ALTER TABLE MyTable ADD  Active  AS    CASE WHEN EndDate < getdate() then 0 ELSE 1 END

如何设置列的位数?,因为默认情况下它是int32。 我尝试使用的是

ALTER TABLE MyTable ADD  Active BIT AS    CASE WHEN EndDate < getdate() then 0 ELSE 1 END

因为有一些stackoverflow答案。但是,我正在做什么似乎不是一个好方法。

1 个答案:

答案 0 :(得分:5)

将其发布到BIT

CREATE TABLE dbo.MyTable
(
    EndDate datetime2
);

ALTER TABLE MyTable 
ADD  Active AS  CAST(CASE WHEN EndDate < getdate() then 0 ELSE 1 END AS BIT)

SELECT c.name
      ,t.[name]
FROM sys.[columns] c
INNER JOIN sys.[types] t
    ON c.[system_type_id] = t.[system_type_id]
WHERE object_id = OBJECT_ID ('dbo.MyTable')

DROP TABLE dbo.MyTable;

enter image description here