powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Циклический сдвиг записей
2 сообщений из 27, страница 2 из 2
Циклический сдвиг записей
    #38798031
Klemzig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rajesh,

Не надо ничего ниоткуда удалять. Циклический буфер реализуется элементарно:

Код: 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.
declare @t table (
	Number int primary key,
	DT time(2) not null default '00:00:00',
	Value money not null default 0,
	TS rowversion not null unique
);

-- Empty rows - create once in the beginning
insert into @t (Number)
select top (86400) row_number() over(order by v.name) - 1
from master.dbo.spt_values v,
	master.dbo.spt_values v1
order by 1;


--while 1=1 begin

	update t set Value = rand() * 100,
		DT = sysdatetime()
	output sysdatetime() as [Now], inserted.*, deleted.Value, deleted.TS
	from @t t
	where t.Number = ((select top(1) number from @t order by TS desc) + 1) % 86400;

	--waitfor delay '00:00:01';

--end;

Понятно, что цикл с ожиданием у вас будет не на стороне сиквела, а в клиенте. Ну и значение, надеюсь, будет несколько более осмысленным, чем у меня в примере. В остальном логика такая же.

Осталось до возможностей компакта обточить, и вперед...
...
Рейтинг: 0 / 0
Циклический сдвиг записей
    #38798076
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При реализации хотелок тредстартера
update
проигрывает
insert/delete
при параллельном вызове.

Многопоточность на update невозможна.
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Циклический сдвиг записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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