目前我有一个将布尔字段存储为 VARCHAR(1) ('T' 或 'F')的数据库。我想用 BIT 替换这些。问题是这需要对使用数据库的程序进行大量更改。所以我认为合乎逻辑的步骤是添加一个 BIT 字段并将现有的 VARCHAR(1) 字段替换为我访问的计算列而不是访问 BIT 字段(因此程序可以继续按原样工作而无需更改,并被更改随着时间的推移使用 BIT 字段)。
我知道这不起作用(UPDATE 和 INSERT 不适用于计算列)。我知道一种选择是重命名现有表并添加一个视图来访问它,但我不认为这是一个可行的解决方案,因为添加和删除列、更改依赖视图等会容易出错(在我看来,这不是一个很好的解决方案)。
我的问题是 - 我有什么选择来实现上述行为(这样程序可以继续按原样工作)?
一个例子:
User (Active VARCHAR(1), ...)
更改为使用计算列:(不起作用)
User (Active_B BIT, Active AS CASE Active_B WHEN 1 THEN 'T' ELSE 'F' END, ...)
更新:修复了示例中的错误。