20.11.2007 11:45
Екатерина
 
Подскажите, можно ли...
Есть некая процедура, которая изменяет данные в таблице (любой). Мне необходимо записать лог - в новую только что созданную таблицу имя таблицы, которую апдейтила, поле, новое, старое значение. Можно ли после выполнения апдейта взять имя таблицы, которую апдейтила??? И это имя добавить в insert в таблицу лог как values???
20.11.2007 12:08
OlegON
 
Что-то не понятен вопрос. Процедура получает извне переменную с именем таблицы? Ну и писать эту переменную...
21.11.2007 02:23
isi
 
Наверно нужен триггер? Только если большие объемы обновлений и вставок, то можно получить пролемы с производительностью
21.11.2007 14:39
Екатерина
 
триггер тогда нужен на каждую изменяемую таблицу...
А без триггера...? После апдейта, из него же взять как-то имя таблицы и передать как параметр в другой апдейт или инсерт?
21.11.2007 15:57
OlegON
 
Екатерина, вы не ответили на мой вопрос. Процедура апдейтит какую-то заданную табло, имя этой табло ей, видимо, передается параметром. Почему бы не поправить эту процедуру, чтобы она после апдейта писала лог? Либо на все таблицы вешать триггеры, либо аудит.
21.11.2007 17:29
Екатерина
 
Не передается ей параметром. Есть процедура апдейта, в которой прописан обыкновенный апдейт таблицы, указанной так update table set name = '33' where ... После выполнений этой процы выполняется следующая, которая вставляет строку в таблицу лога. Чтобы не прописывать ручками имя таблицы, можно ли после выполнения процы апдейта взять из неё имя таблицы, которая указана в операторе update и передать параметром в процу insert. Без навешивания триггеров на таблицу, по которой делается апдейт.
21.11.2007 18:35
OlegON
 
Хорошо, еще раз. Что мешает из двух процедур сделать одну?
21.11.2007 18:41
Pyatak
 
Можно еще уточнить:
1) Вы ли пишете программу или пытаетесь исправить что-то кем-то написанное ранее?
2) В какой среде на каком языке пишите?

а то складывается впечатление, что тут разговаривают слепой с немым...
23.11.2007 18:15
Екатерина
 
Да ничего не мешает. Легко. Но у меня несколько может быть будет процедур апдейта и хотелось бы одну для лога иметь универсальную.
Исправить ничего не пытаюсь, пишу для себя. И нужна такая мулька. Можно ли из оператора апдейт взять имя таблицы как переменную. Т.е. после update TABLE set .... вдруг написать А = TABLE. И херакнуть её в другой update или insert или select... Я даже не знаю как еще сказать, что мне надо.... *11
23.11.2007 18:38
OlegON
 
Ну и передавайте тогда в эту процедуру имя табло, как переменную...
Часовой пояс GMT +3, время: 07:40.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.