alter table 添加位列作为 case when
alter table add bit column as case when
您好,我要在我的 table
中添加一个新专栏
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
因为一些 Whosebug 的回答。然而,我正在做的事情似乎不是一个好的方法。
投射到 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;
您好,我要在我的 table
中添加一个新专栏 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
因为一些 Whosebug 的回答。然而,我正在做的事情似乎不是一个好的方法。
投射到 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;