Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.033 c
1-1121242262
k2
2005-07-13 12:11
2005.07.31
Регистрация в реестре с параметром %SystemRoot%


3-1119371214
Alex Romanskiy
2005-06-21 20:26
2005.07.31
Квадратный корень в iSQL в IB


14-1120561122
mozg111
2005-07-05 14:58
2005.07.31
Как создать ini-файл для CD-ROM (Autorun)


14-1120817921
DeepProg
2005-07-08 14:18
2005.07.31
Непонятная AV


14-1120631965
stud
2005-07-06 10:39
2005.07.31
вопрос админам





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский