ev *_* vk 1 t-sql sql-server calculated-columns alter
您好我要在我的表中添加一个新列
ALTER TABLE MyTable ADD Active AS CASE WHEN EndDate < getdate() then 0 ELSE 1 END
Run Code Online (Sandbox Code Playgroud)
如何将列设置为有点?因为默认情况下它是一个int32.我试过的就是用它
ALTER TABLE MyTable ADD Active BIT AS CASE WHEN EndDate < getdate() then 0 ELSE 1 END
Run Code Online (Sandbox Code Playgroud)
因为一些stackoverflow答案.然而,我正在做的事似乎不是一个好的方法.
把它投到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;
Run Code Online (Sandbox Code Playgroud)