我使用的是 SQL Server 2005 Standard Service Pack 2 9.00.4053.00 (Intel X86) 版本。
表格中有接近 3000 万行数据。
如果我执行
SELECT GETDATE(), * FROM
<table>
包括毫秒的相同日期和时间值被返回,尽管查询需要超过3分钟才能完成...
我已经阅读了:
http://sqlblog.com/blogs/andrew_kelly/archive/2008/02/27/when-getdate-is-not-a-constant.aspx
我所贴出的其中一个链接(标记为答案)表明,在SQL 2005之前,GETDATE是确定性的,尽管SQL 2000 BOL表示GETDATE是非确定性的。
如果我对数百万行进行更新...
UPDATE tableName
SET dateColumn = GETDATE()
我知道你真的很想做
DECLARE @DT datetime
SET @DT = GETDATE()
UPDATE table
SET datecol =@DT
我真的很困惑
预期的行为会是什么?
- 针对我之前发布的 select 语句
- update 语句的行为
考虑你正在更新一个有1亿行的表中的日期列,那么日期列是否会有相同的日期和毫秒时间?
RAND()
函数,成功验证了您提到的行为(SQL Server 2008)。https://dev59.com/Jm025IYBdhLWcg3wYFCH#6036783 - StriplingWarrior