0
我想将某些旧列中的数据复制到同一个表中的一些新创建的列中。一些列是bit
和一些text
(旧)到varchar
(新)。我遇到的困难是旧列中有一些空数据,而新列是not null
。我该如何做到这一点,以便如果旧数据为空,那么新数据会得到一个非空值,可以是0或'',具体取决于。将NULL数据复制到列中不为空
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
标签您正在使用的数据库管理系统。该代码是特定于产品的。 – jarlh
更重要的是,不要这样做!保留空值!存储假零位是一个糟糕的主意。 – jarlh