Update tmp
SET BakColumn1 = Column1
,Column1 = Column1 + ' Changed Value'
如果我的语句在MS-SQL 2008或更高版本中如上所述,是否可以保证我将始终在Backup列(BakColumn)中获取Column1原始内容?如果没有其他方法,或者我必须执行2个单独的交易?
高于1度的并行性(MAX-DOP)会导致问题吗?
答案 0 :(得分:0)
是的,保证您始终可以在“备份”列中获取Column1原始内容。
订单无关紧要。
为此,您可以检查列之间的交换值并验证结果。
Update tmp
SET BakColumn1 = Column1
,Column1 =BakColumn1
我认为,这里的关键是行的原始值暂时保持并在整个过程中引用。
并行性仅用于提升性能,不会改变功能行为。如果您发现任何使用DOP的差异,那么您可以报告错误 - :)
希望这有帮助。