在SQL中更新列的顺序

时间:2016-03-29 14:07:42

标签: sql-server sql-update

Update tmp
SET BakColumn1 = Column1
,Column1 = Column1 + ' Changed Value'

如果我的语句在MS-SQL 2008或更高版本中如上所述,是否可以保证我将始终在Backup列(BakColumn)中获取Column1原始内容?如果没有其他方法,或者我必须执行2个单独的交易?

高于1度的并行性(MAX-DOP)会导致问题吗?

1 个答案:

答案 0 :(得分:0)

是的,保证您始终可以在“备份”列中获取Column1原始内容。

订单无关紧要。

为此,您可以检查列之间的交换值并验证结果。

Update tmp
SET BakColumn1 = Column1
,Column1 =BakColumn1 

我认为,这里的关键是行的原始值暂时保持并在整个过程中引用。

并行性仅用于提升性能,不会改变功能行为。如果您发现任何使用DOP的差异,那么您可以报告错误 - :)

希望这有帮助。