powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как поэлегантней/эффективней получить список версий из system-versioned temporal tables ?
2 сообщений из 2, страница 1 из 1
Как поэлегантней/эффективней получить список версий из system-versioned temporal tables ?
    #39828996
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как поэлегантней и эффективней получить список версий из system-versioned temporal tables ?
например создаю такую таблицу (в Adventure Works Data Warehouse) для версий,
(допустим что строк там по 100 миллионов в на каждый snapshot)
и вставляю туда 3 версии:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
use AW17DW;
go
create schema tmp;
go

create table tmp.sales_track(
dat int not null
,qty int
,validfrom datetime2 (2) generated always as row start hidden not null
,validto datetime2 (2) generated always as row end hidden not null
,period for system_time(validfrom,validto)
,constraint sls_hist_pk primary key(dat,validfrom,validto)
)with(system_versioning=on(history_table=tmp.sales_hist));
go
insert into tmp.sales_track(dat,qty)
select[OrderDateKey]dat,
sum([OrderQuantity])qty from dbo.[FactInternetSales]
group by[OrderDateKey];
go
waitfor delay '00:00:01';
insert into tmp.sales_track(dat,qty)
select[OrderDateKey]dat,
10+sum([OrderQuantity])qty from dbo.[FactInternetSales]
group by[OrderDateKey];
go
waitfor delay '00:00:01';
insert into tmp.sales_track(dat,qty)
select[OrderDateKey]dat,
100+sum([OrderQuantity])qty from dbo.[FactInternetSales]
group by[OrderDateKey];
go
/*
alter table tmp.sales_track set(system_versioning=off);
go
drop table if exists tmp.sales_track;
go
drop table if exists tmp.sales_hist;
go
drop schema if exists tmp;
go
*/
...
Рейтинг: 0 / 0
Как поэлегантней/эффективней получить список версий из system-versioned temporal tables ?
    #39828998
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой, т.е. первый insert только, остальные update
update dbo.sls_trk set q=q+10 ...
waitfor ...
update dbo.sls_trk set q=q+100 ...

естественно запрос через: ... for system_time as of ...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
use AW17DW;
go
create schema tmp;
go

create table tmp.sales_track(
dat int not null
,qty int
,validfrom datetime2 (2) generated always as row start hidden not null
,validto datetime2 (2) generated always as row end hidden not null
,period for system_time(validfrom,validto)
,constraint sls_hist_pk primary key(dat,validfrom,validto)
)with(system_versioning=on(history_table=tmp.sales_hist));
go
insert into tmp.sales_track(dat,qty)
select[OrderDateKey]dat,
sum([OrderQuantity])qty from dbo.[FactInternetSales]
group by[OrderDateKey];
go
waitfor delay '00:00:01';
update tmp.sales_track set qty=qty+10;
go
waitfor delay '00:00:01';
update tmp.sales_track set qty=qty+100;
go

/*
select sum(qty)from tmp.sales_track
for system_time as of
--'2019-06-21 04:30:57.66'
--'2019-06-21 04:30:58.68'
*/

/*
alter table tmp.sales_track set(system_versioning=off);
go
drop table if exists tmp.sales_track;
go
drop table if exists tmp.sales_hist;
go
drop schema if exists tmp;
go
*/
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как поэлегантней/эффективней получить список версий из system-versioned temporal tables ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]