noo*_*ber -1 t-sql sql-server-2008
我有一个表 col1 float, col2 float ,其中包含以下数据:
1,2
3,4
查询后:
UPDATE MyTable SET col1 = 100, col2 = col1
Run Code Online (Sandbox Code Playgroud)
被执行,行是:
100,1
100,3
显然,当 col2 正在更新时,会使用 col1 的旧的、未更新的值。是否可以使用新值更新 col2,引用 col1 或者我必须将值 (100) 写入两次?我想使用自动生成的查询,并且更容易保留公式。
问候,
这是另一种尝试的替代方法:
DECLARE @x float;
UPDATE MyTable
SET
@x = col1 = formula,
col2 = @x * …
OPTION (MAXDOP 1)
Run Code Online (Sandbox Code Playgroud)
或者:
DECLARE @x float;
UPDATE MyTable
SET
@x = formula,
col1 = @x,
col2 = @x * …
OPTION (MAXDOP 1)
Run Code Online (Sandbox Code Playgroud)
OPTION (MAXDOP 1)
是否可以确保作业评估的顺序。
归档时间: |
|
查看次数: |
3893 次 |
最近记录: |