現在、ブールフィールドをVARCHAR(1)('T'または'F')として格納するデータベースがあります。これらをBITに置き換えたい。問題は、これにはデータベースを使用するプログラムに大量の変更が必要になることです。したがって、論理的な手順は、BITフィールドを追加し、既存のVARCHAR(1)フィールドを、BITフィールドにアクセスするのではなく、アクセスする計算列に置き換えることだと思いました(したがって、プログラムは変更なしでそのまま動作し続け、変更できます)時間の経過とともにBITフィールドを使用します)。
私はこれが機能しないことを知っています(UPDATEとINSERTは計算列では機能しません)。1つのオプションは、既存のテーブルの名前を変更し、それにアクセスするためのビューを追加することですが、列の追加と削除、依存ビューの変更などがエラーを起こしやすいため、実行可能なソリューションとしてはわかりません(そしてそれは私の意見ではきちんとした解決策ではありません)。
私の質問は-上記の動作を達成するための私のオプションは何ですか(プログラムがそのまま動作し続けることができるように)?
例:
User (Active VARCHAR(1), ...)
計算列を使用するように変更:(機能しません)
User (Active_B BIT, Active AS CASE Active_B WHEN 1 THEN 'T' ELSE 'F' END, ...)
更新:例のエラーを修正しました。