1

假设我有很大的桌子(很多行)

我有这个 sql cmd:

update myTable set name='Royi' , dateUpadted=getDate()

再次,很多行...... - 更新整个表的时间:3 分钟。(已编入索引)

我的目标是:

每个更新的行都应该有它的真实秒/毫秒差异) getdate()!!!

所以我想要的结果:

name | dateUpadated
___________________
royi |      12:00:00  -- getDate() here was 12:00:00
...  |         ...
...  |         ...
...  |         ...
royi |      12:01:13  -- getDate() here was 12:01:13
...  |         ...
...  |         ...
...  |         ...
royi |      12:03:01  -- getDate() here was 12:03:01

我该怎么做 ?

(我不要我们cursor

是否有任何开关可以getDate()运行:

“使用您当前的价值,而不是您开始使用的价值”?

4

2 回答 2

4

您可以将它包装在一个标量 UDF 中,以便为每一行重新评估它。

CREATE FUNCTION dbo.GETDATE()
RETURNS DATETIME    
AS
BEGIN
    RETURN GETDATE();
END
于 2012-04-27T14:49:52.883 回答
0

不过,这“真正的”价值。UPDATE发生在交易中;更改是一次性提交的,而不是每行提交。如果您希望单独更新行,游标正是您想要的。

于 2012-04-27T14:49:40.147 回答