Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.31;
Скачать: CL | DM;

Вниз

Узнать текст запроса и 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.044 c
8-1111931405
ASD!
2005-03-27 17:50
2005.07.31
Посоветуйте компонент поддерживающий все графические форматы!


4-1117141426
-=GaLaN=-
2005-05-27 01:03
2005.07.31
Определить тип приложения


1-1121244630
Вольный Стрелок
2005-07-13 12:50
2005.07.31
Консольное приложение - косой вывод кириллицы на экран


1-1121146525
Igor_M
2005-07-12 09:35
2005.07.31
RX lib


14-1120931664
Piter
2005-07-09 21:54
2005.07.31
RTTI?