Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как можно узнать об изменении определённой строки в sql server 2008  [new]
Agent-WD-40
Member

Откуда:
Сообщений: 77
Всем привет в соседней ветке меня послали к вам =)
Вопрос в следующем. Как можно узнать об изменении определённой строки в sql server 2008

К примеру сейчас у меня изменилась 20 строка в таблице и метод вернул мне номер строки или изменившиеся данные. Через 5 минут у меня изменилась строка 50 и метод снова вернул мне изменившиеся данные. Как такое можно сделать.

Про триггеры DML и CLR триггеры
я в курсе
SqlDependency к сожалению не сообщает что изменилось он лишь говорит что произошло изменение. А мне нужно знать что именно изменилось. =)

Вопрос как ещё можно отслеживать изменения?
C# 3.5
SQL Server 2008
11 ноя 09, 18:05    [7916070]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
в таблице нет строк с "номерами" 50 , 20 и т.д.

1. Повесть триггер на тблицу, в таблице по изменению записи посласть сообщение сервис боркеру, который по тсп разошлёт ссобщения подписчикам об изменённой записи.

2. добавить таймстамп поле в таблицу , запрашивать таблицу запросом и смотреть какая строка обновилась

3. на клиенте кэшировать пару - PK. HASH и после очередной выборке проверять какая.

4. Забить на этот велосипед с квадратными колёсами.
11 ноя 09, 18:20    [7916170]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Agent-WD-40
Member

Откуда:
Сообщений: 77
Ken@t

4. Забить на этот велосипед с квадратными колёсами.


А где взять фирменный велосипед с круглыми колёсами? =)
11 ноя 09, 18:35    [7916287]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Agent-WD-40,

по поиску пройдитесь, там много интересного по нотификации клиента и их афторах можно найти. это даже не баян, это говно мамонта.
11 ноя 09, 18:37    [7916299]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Нотификации через SqlDependency
11 ноя 09, 19:30    [7916550]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Change Data Capture
11 ноя 09, 20:43    [7916834]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Agent-WD-40
Member

Откуда:
Сообщений: 77
Mnior
Нотификации через SqlDependency


На сколько я понимаю SqlDependency к сожалению не сообщает что изменилось он лишь говорит что произошло изменение. А мне нужно знать что именно изменилось. =)
11 ноя 09, 22:27    [7917120]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Denis Reznik
Member

Откуда: Киев
Сообщений: 156
фирменный велосипед с круглыми колёсами, и как раз для 2008 сиквела :) - Change Data Capture либо Change Tracking
11 ноя 09, 23:34    [7917340]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
восточный чайник
Guest
Denis Reznik
фирменный велосипед с круглыми колёсами, и как раз для 2008 сиквела :) - Change Data Capture либо Change Tracking


Пардон, сажусь на хвост: а для 2005-го такая штука есть?
12 ноя 09, 12:33    [7919452]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
восточный чайник
Denis Reznik
фирменный велосипед с круглыми колёсами, и как раз для 2008 сиквела :) - Change Data Capture либо Change Tracking


Пардон, сажусь на хвост: а для 2005-го такая штука есть?
НЕТ!
12 ноя 09, 12:34    [7919469]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
от тему вовремя создали - спасибо !!! только что начальник сказал что хочет чтобы у нас такое тоже было...
12 ноя 09, 13:06    [7919839]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Agent-WD-40
Member

Откуда:
Сообщений: 77
Denis Reznik
фирменный велосипед с круглыми колёсами, и как раз для 2008 сиквела :) - Change Data Capture либо Change Tracking


Большое спасибо. Но как я понял это не совсем то что нужно. Моя задача заключается в следующем. Мне нужно в программе на C# получить уведомление то есть что бы запустилась функция или сработало событие при изменении строки в бд. И эта функция знала какая строка изменилась. Хотя в принципе можно попробовать Change Tracking в месте с sqldependency.
12 ноя 09, 18:58    [7922488]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
koJIo6ok,
при массовой вставке операторы завесятся.
вообще нотификация подобного рода нужна в исключительных случаях. Начальник, ваш , тоже забавен, посто "хочу" без оценки.... сочуствую вам.
12 ноя 09, 19:04    [7922513]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
проходящий.
Guest
Agent-WD-40
сработало событие при изменении строки в бд. И эта функция знала какая строка изменилась.
Хм, обычно для этого всегда хватало триггера.
12 ноя 09, 19:09    [7922526]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Agent-WD-40
Member

Откуда:
Сообщений: 77
проходящий.
Agent-WD-40
сработало событие при изменении строки в бд. И эта функция знала какая строка изменилась.
Хм, обычно для этого всегда хватало триггера.

Так я спрашиваю самый оптимальный вариант =)
К стати а не кто не может подкинуть ссылочек как реализовать тригер в sql server'e который вызывает или событие или функции во внешней программе.
12 ноя 09, 19:13    [7922536]     Ответить | Цитировать Сообщить модератору
 Re: Как можно узнать об изменении определённой строки в sql server 2008  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Agent-WD-40
проходящий.
Agent-WD-40
сработало событие при изменении строки в бд. И эта функция знала какая строка изменилась.
Хм, обычно для этого всегда хватало триггера.

Так я спрашиваю самый оптимальный вариант =)
К стати а не кто не может подкинуть ссылочек как реализовать тригер в sql server'e который вызывает или событие или функции во внешней программе.

триггер , как тригер, в которм вызывается ваш любимый ломик xp_cmdshell, sp_OA или активация брокера которые доставляют сообщение клиенту.
12 ноя 09, 19:18    [7922552]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить