powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Гарантируемый UPDATE :)
6 сообщений из 6, страница 1 из 1
Гарантируемый UPDATE :)
    #37179224
marse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гарантирует ли вариант 2 обновление записей в порядке, отсортированным по ID?
Сайбэйз 12.5.2

Код: plaintext
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.
IF object_id('#tmp_sum') IS NOT NULL
    DROP TABLE #tmp_sum

go

CREATE TABLE #tmp_sum(ID INT IDENTITY PRIMARY KEY CLUSTERED, Deal money)

INSERT INTO #tmp_sum(Deal)
VALUES ( 100 )

INSERT INTO #tmp_sum(Deal)
VALUES ( 200 )

INSERT INTO #tmp_sum(Deal)
VALUES ( 20 )

INSERT INTO #tmp_sum(Deal)
VALUES ( 9 )

DECLARE @Deal MONEY

SET @Deal =  0 

--Вариант 1
SELECT t.ID, sum(tt.Deal)
FROM #tmp_sum t
    INNER JOIN #tmp_sum tt
    ON tt.ID <= t.ID
GROUP BY t.ID

--Вариант 2
UPDATE #tmp_sum
SET Deal = Deal + @Deal,
    @Deal = Deal + @Deal
    
SELECT * 
FROM #tmp_sum
Модератор: не забывай пользоваться кнопкой SRC
...
Рейтинг: 0 / 0
Гарантируемый UPDATE :)
    #37179267
marse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без IQ
...
Рейтинг: 0 / 0
Гарантируемый UPDATE :)
    #37179681
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marseГарантирует ли вариант 2 обновление записей в порядке, отсортированным по ID?нет
...
Рейтинг: 0 / 0
Гарантируемый UPDATE :)
    #37179947
invariant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,
В приведенном примере будет table scan по таблице с кластеризованным индексом по ID, так что данные лежат в порядке увеличения ID - соответственно и update пойдет в том же порядке.
...
Рейтинг: 0 / 0
Гарантируемый UPDATE :)
    #37181658
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invariantWhite Owl,
В приведенном примере будет table scan по таблице с кластеризованным индексом по ID, так что данные лежат в порядке увеличения ID - соответственно и update пойдет в том же порядке.Порядок обновления и удаления строк никак не регламентирован, а значит и закладываться на это нельзя.
...
Рейтинг: 0 / 0
Гарантируемый UPDATE :)
    #37181723
invariant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlПорядок обновления и удаления строк никак не регламентирован, а значит и закладываться на это нельзя.
Конкретно в данных условиях - (ASE12.5, таблица с фиксированными полями, кластеризованный индекс, прямой update) - работает. Но в общем случае Вы, конечно, правы - есть много тонких моментов, которые надо проверять, и для разных версий сервера поведение может и поменяться. Так что в повседневной практике такие методы лучше не использовать, но в каком-нибудь конкретном случае для разового update может и пригодиться.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Гарантируемый UPDATE :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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