Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить запись, которая была изменена последней / 19 сообщений из 19, страница 1 из 1
18.02.2021, 16:35
    #40046773
kikipumpa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Есть ли возможность получить последнюю запись, которая была изменена через update?
...
Рейтинг: 0 / 0
18.02.2021, 16:49
    #40046783
RedBird
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa,

Код: sql
1.
2.
3.
4.
CREATE TRIGGER dbo.TableName_Update
ON dbo.TableName
AFTER UPDATE 
AS



И ловите "последнюю" запись сколько хотите.
...
Рейтинг: 0 / 0
18.02.2021, 17:00
    #40046789
kikipumpa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
RedBird,

и что дальше? отдельную таблицу для таких записей делать?
А в логах каких-нибудь, таблицах системных эта информация не сохраняется?
...
Рейтинг: 0 / 0
18.02.2021, 17:17
    #40046797
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
RedBird
kikipumpa,

Код: sql
1.
2.
3.
4.
CREATE TRIGGER dbo.TableName_Update
ON dbo.TableName
AFTER UPDATE 
AS



И ловите "последнюю" запись сколько хотите.



и как же? предполагается, что "последняя" - это нечто всеми понимаемое однозначно
...
Рейтинг: 0 / 0
18.02.2021, 17:23
    #40046799
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa
А в логах каких-нибудь, таблицах системных эта информация не сохраняется?
Зачем? Зачем серверу сия инфа? И как серверу определять "последнюю" в неупорядоченном наборе в примерно миллион записей в последнем апдейте?
...
Рейтинг: 0 / 0
18.02.2021, 17:52
    #40046810
kikipumpa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Sergey Sizov
kikipumpa
А в логах каких-нибудь, таблицах системных эта информация не сохраняется?
Зачем? Зачем серверу сия инфа?

А зачем люди логи придумали?
Sergey Sizov

И как серверу определять "последнюю" в неупорядоченном наборе в примерно миллион записей в последнем апдейте?

По времени выполнения, например
...
Рейтинг: 0 / 0
18.02.2021, 17:55
    #40046812
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa
А зачем люди логи придумали?
Чтобы эти логи засирали все доступное место, чтобы сбор логов аффектил производительность сервера и чтобы все бежали их первым делом отключать.
...
Рейтинг: 0 / 0
18.02.2021, 18:06
    #40046820
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa
Sergey Sizov
пропущено...
Зачем? Зачем серверу сия инфа?

А зачем люди логи придумали?
Sergey Sizov

И как серверу определять "последнюю" в неупорядоченном наборе в примерно миллион записей в последнем апдейте?

По времени выполнения, например


обана!

это как минимум звучит красиво
...
Рейтинг: 0 / 0
18.02.2021, 18:42
    #40046838
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa
Есть ли возможность получить последнюю запись, которая была изменена через update?
последняя по времени апдейта или коммита?
...
Рейтинг: 0 / 0
18.02.2021, 18:45
    #40046839
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Ролг Хупин
RedBird
kikipumpa,

Код: sql
1.
2.
3.
4.
CREATE TRIGGER dbo.TableName_Update
ON dbo.TableName
AFTER UPDATE 
AS




И ловите "последнюю" запись сколько хотите.



и как же? предполагается, что "последняя" - это нечто всеми понимаемое однозначно
как вариант - посмотреть в сторону rowversion
...
Рейтинг: 0 / 0
18.02.2021, 20:23
    #40046872
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa,

UPDATE - это операция над математическим множеством, у множеств не бывает ни первой, ни последней записи. Это мешок с картошкой.
...
Рейтинг: 0 / 0
19.02.2021, 00:58
    #40046955
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Владислав Колосов
kikipumpa,

UPDATE - это операция над математическим множеством, у множеств не бывает ни первой, ни последней записи. Это мешок с картошкой.
инсерт тоже
Но идшник у каждого свой
...
Рейтинг: 0 / 0
19.02.2021, 01:27
    #40046956
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Владислав Колосов
kikipumpa,

UPDATE - это операция над математическим множеством, у множеств не бывает ни первой, ни последней записи. Это мешок с картошкой.
Типа того. Но rowversion бы каждую картофелину пометил.
...
Рейтинг: 0 / 0
19.02.2021, 01:42
    #40046960
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Гавриленко Сергей Алексеевич,

Да, но основывать на этом разработку - лукавство и попытки обойти реляционные законы, играя на особенностях механики сервера. Искушения надо преодолевать :)
...
Рейтинг: 0 / 0
19.02.2021, 01:53
    #40046961
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Владислав Колосов
Гавриленко Сергей Алексеевич,

Да, но основывать на этом разработку - лукавство и попытки обойти реляционные законы, играя на особенностях механики сервера. Искушения надо преодолевать :)
С точки зрения логики -- спорно. С точки зрения физики -- шикарно для всевозможных репликаций, логических моделей блокировок и т.п.
...
Рейтинг: 0 / 0
19.02.2021, 07:28
    #40046980
LexusR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
kikipumpa,
CDC
...
Рейтинг: 0 / 0
19.02.2021, 09:06
    #40046989
kikipumpa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
andreymx
kikipumpa
Есть ли возможность получить последнюю запись, которая была изменена через update?
последняя по времени апдейта или коммита?

Можно рассмотреть оба варианта
...
Рейтинг: 0 / 0
19.02.2021, 09:53
    #40046998
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
Мороз крепчал...
... все соскучились по живому общению ...

Самый простой вариант,- если надо отслеживать изменения строк в какой-то определённой таблице:
1. Создаётся таблица, похожая на исходную, с дополнительными полями (RowId - bigint identity(1,1) и RowTime - datetime default getdate() )
2. На интересующую Вас таблицу "вешается" триггер (или несколько,- в зависимости от того, ЧТО именно интересует) - after INSERT|DELETE|UPDATE , который в таблицу-журнал записывает значение полей из служебных таблиц inserted и deleted (они есть в триггерах)

НО , прежде чем всё это делать чётко поймите - ЧТО Вам нужно и ЗАЧЕМ, так как наличие такого журналирования - это просто и очевидно, но может дать очень сильный проигрыш в производительности. На объём базы с журналом сейчас в общем-то всем начхать ;)

PS Триггера на SELECT нет, есличо....
PPS Кстати, коллеги, а почему до сих пор не изобрели триггер на Select ? Мы же можем повесить эвент на доступ к объекту. И понять, что это был select. И связать с id-шником, логином, юзером...
...
Рейтинг: 0 / 0
19.02.2021, 10:54
    #40047027
kikipumpa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить запись, которая была изменена последней
andreymx
как вариант - посмотреть в сторону rowversion

В процессе гугления rowversion открыл для себя функцию CHANGETABLE - выдает и id записи, и операцию
И из sys.dm_tran_commit_table можно время коммита получить.
Только не разобрался, почему SYS_CHANGE_COLUMNS выдает null, но это уже не обязательно
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Получить запись, которая была изменена последней / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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