0
いくつかの古いカラムのデータを、同じテーブルの新しく作成されたカラムにコピーしたいとします。いくつかの列はbit
であり、一部はtext
(旧)からvarchar
(新規)です。私が苦労しているのは、古い列にはヌルデータがあり、新しい列はnot null
です。古いデータがヌルの場合、新しいデータはヌル値ではなく、0または ''になります。ヌルデータをヌルでないカラムにコピーする
BEGIN TRY
BEGIN TRANSACTION
update tblProject
set
NewBitColumn1 = OldBitColumn1,
NewBitColumn2 = OldBitColumn2,
NewBitColumn3 = OldBitColumn3,
NewVarCharColumn1 = OldTextColumn1,
NewVarCharColumn2 = OldTextColumn2,
NewVarCharColumn3 = OldTextColumn3,
COMMIT TRAN -- Transaction Success
END TRY
BEGIN CATCH
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE()
DECLARE @ErrorSeverity INT = ERROR_SEVERITY()
DECLARE @ErrorState INT = ERROR_STATE()
IF @@TRANCOUNT > 0
ROLLBACK TRAN --RollBack in case of Error
RAISERROR(@ErrorMessage, @ErrorSeverity, @ErrorState)
END CATCH
タグあなたが使用しているDBMS。そのコードは製品固有です。 – jarlh
もっと重要なことに、やってはいけません!ヌル値を保つ!偽のヌルを格納するのは悪い考えです。 – jarlh