Главная страница
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.029 c
10-1098203538
bas
2004-10-19 20:32
2005.07.31
Использование TOLEContainer, есть проблема


3-1118393371
Dummes
2005-06-10 12:49
2005.07.31
Запрос и ProgressBar


3-1118885789
Dvm_home
2005-06-16 05:36
2005.07.31
Определение дубля


14-1120995876
boriskb
2005-07-10 15:44
2005.07.31
Кто что делает?


3-1119343319
jiny
2005-06-21 12:41
2005.07.31
Как правильно сделать ID документа с префиксом (ЖАС-3420)?