Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
ВнизУзнать текст запроса и Host Найти похожие ветки
← →
ivc_andr (2005-06-16 14:23) [0]Ув мастера! Подскажите пожалуйста!
Задача: Я пишу тригер в MSSQL, который во время апдэйта поля записывает данные в другую таблицу (короче веду ЛОГ). Как мне узнать и записать в таблицу(ЛОГ) текст запроса, которым делался этот апдэйт и Host(ну там IP-ник или имя машины) с которой он проводился.
Буду очень признателен. ОЧЕНЬ НАДО!
← →
Ega23 © (2005-06-16 14:27) [1]которым делался этот апдэйт и Host(ну там IP-ник или имя машины)
exec sp_who
Как мне узнать и записать в таблицу(ЛОГ) текст запроса, которым делался этот апдэйт
А НАФИГА???? У тебя сам сервер Transaction Log ведёт.
← →
ivc_andr (2005-06-16 14:34) [2]А НАФИГА???? У тебя сам сервер Transaction Log ведёт.
Так я это понимаю. А как тогда из Transaction Log выдернуть этот текст и записать в тадлицу....Задача такая
← →
Ярослав (2005-06-16 14:47) [3]Под MS SQL попробуй
select sp.loginame, sp.hostname, sp.program_name, sp.status, sp.sid, spid
from master.dbo.sysprocesses as sp
inner join master.dbo.sysdatabases as sd on sp.dbid=sd.dbid
where sd."Name"="TestADOMD"
Где TestADOMD - имя базы
← →
Ega23 © (2005-06-16 15:01) [4]Так я это понимаю. А как тогда из Transaction Log выдернуть этот текст и записать в тадлицу....Задача такая
Позволь полюбопытствовать: если это триггер, то какой текст запроса должен отписаться в твою таблицу протокола, если ты в Enterprise Manager"е запись ручками поправишь?
← →
Stanislav © (2005-06-16 15:30) [5]HOST_NAME() - машина
APP_NAME() - программа
SUSER_SNAME() -Юзер
← →
Stanislav © (2005-06-16 15:33) [6]Ega23 © (16.06.05 15:01) [4]
Наверное Update...
← →
ivc_andr (2005-06-16 15:35) [7]Позволь полюбопытствовать: если это триггер, то какой текст запроса должен отписаться в твою таблицу протокола, если ты в Enterprise Manager"е запись ручками поправишь?
работает с базой куча клиентов, в таблице начали стираться данные и я не могу вычислить почему, поэтому мне и нужно знать как и откуда это происходит.
sp_who и (select sp.loginame, sp.hostname, sp.program_name, sp.status, sp.sid, spid
from master.dbo.sysprocesses as sp
inner join master.dbo.sysdatabases as sd on sp.dbid=sd.dbid
where sd."Name"="TestADOMD") отображают всю активность с базой, мне же нужно вычислить действия в момент апдейта. По какому признаку его вытягивать из всех подключений к базе
← →
Nikolay M. © (2005-06-16 15:38) [8]
> какой текст запроса должен отписаться
> в твою таблицу протокола, если ты в Enterprise Manager"е
> запись ручками поправишь?
Очевидно, обычный UPDATE. А почему ЕМ такой особенный?
> ivc_andr (16.06.05 14:23)
Имхо, не стоит создавать проблемы там, где их нет. Для анализа Transaction log-а можно воспользоваться одной из существующих программ, например, ApexSQL.
← →
Nikolay M. © (2005-06-16 15:40) [9]
> мне же нужно вычислить действия в момент апдейта.
Запустить профайлер с необходимыми фильтрами?
← →
Ega23 © (2005-06-16 15:43) [10]Очевидно, обычный UPDATE. А почему ЕМ такой особенный?
Я наверное не совсем понял, текст какого запроса надо логгировать?
А если с клиента запускается ХП, которая делает update в 10 таблицах? Что должно записаться? Строка "exec s_myproc @param1=value1 ...." или все 10 апдейтов?
"Не могу понять..." (с)
← →
ivc_andr (2005-06-16 15:50) [11]Я наверное не совсем понял, текст какого запроса надо логгировать?
А если с клиента запускается ХП, которая делает update в 10 таблицах? Что должно записаться? Строка "exec s_myproc @param1=value1 ...." или все 10 апдейтов?
нужно записать текст того запроса, который меняет значение нужного поля, для чего я тригер и начал писать. Нужно знать, какой запрос портит данные
← →
Ega23 © (2005-06-16 16:04) [12]А тогда в чём, собственно говоря, проблема?
← →
Nikolay M. © (2005-06-16 16:07) [13]
> Я наверное не совсем понял, текст какого запроса надо логгировать?
Да вообще, задача, имхо, довольно бредовая. Особенно учитывая цель, ради которой все это затевается.
Воспользоваться [8] и не изобретать велосипед.
← →
evvcom © (2005-06-16 16:18) [14]
> работает с базой куча клиентов, в таблице начали стираться
> данные и я не могу вычислить почему
Вот для этого не надо давать пользователям полномочия напрямую работать с таблицами. Есть хранимые процедуры, есть вьюхи, а гранты на таблицы для всех пользователей надо поубивать. Имхо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.032 c