您好,我要在表格中添加新列
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答案。但是,我正在做什么似乎不是一个好方法。
答案 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;