Один из моих пользователей запустил следующий код
set nocount on;
with R0 as
(
select 1 as f1
union all
select 1
union all
select 1
union all
select 1
union all
select 1
),
R1 as (select a.f1 as f1 from R0 a cross join R0 b),
R2 as (select a.f1 as f1 from R1 a cross join R1 b),
R3 as (select a.f1 as f1 from R2 a cross join R2 b)
select top 350000 f1
into t1
from R3
go
set nocount off
declare @v1 int = 12345
update a
set @v1 = a.f1 = @v1+1
from t1 a
GO
select * from t1 order by 1
drop table t1
В SQL Server 2014 он получил числа последовательно;как это:
12346
12347
12348
Но в SQL Server 2017 он получает следующие результаты:
12346
12346
12346
12346
12346
12346
12346
12346
12346
12346
12347
12347
12347
и т. д.
Я думал, что это из-за IDENTITY_CACHE, но оказалось, чтовыключен с теми же результатами.
Также попытался установить CU12 на экземпляр, но тот же эффект.
Есть предложения?