Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MS SQL 2000


андр. ©   (2008-06-10 10:56:00) 

Можно ли в триггере какой либо функцией вернуть имя текущей таблицы, тоесть той таблицы в которой срабатывает триггер...

Например есть таблица Table1, в ней триггер trgTable1:

CREATE TRIGGER [trgTable1] ON [dbo].[Table1]
FOR INSERT, UPDATE, DELETE
AS
 DECLARE
   @TableName nvarchar(32)

 SET @TableName = GETTABLENAME()


?


Anatoly Podgoretsky   (2008-06-10 13:17:00) [1]

MS SQL поддерживает скрипты, при том в обе стороны.


MsGuns   (2008-06-10 12:55:00) [2]

Очевидно, автор желает не заморачиваться при написании триггера для каждой таблицы указывать имя этой таблицы, например для того, чтобы его (имя) прописывать в некий "сводный" лог.
Журналирование, вложенное в триггер, очень зловредная штука и требует доп.админсервисов. Хотя бы для того, чтобы периодически очищать журнал, особенно после чистки базы или заливок данных. Кроме того, "сводный" журнал чрезвычайно трудно контролировать.


Anatoly Podgoretsky   (2008-06-10 11:44:00) [3]

Она не срабатывает на разных таблицах, триггер приписан к конкретной таблице и это указано явно

ON [dbo].[ Table1]


DiamondShark   (2008-06-10 11:43:00) [4]


> Т.е., ответ как я понимаю: "Такой функции нет, и быть ниможет !" ?

Н еможет


> Хм... Интересная функция только наверное она будет только
> затормаживать процесс обработки триггера...

Любой оператор будет затормаживать процесс обработки триггера.
Но учитывая, что: "57 таблиц. На каждую необходим триггер который выполняет функцию логирования действий.", процесс у тебя и так заторможен по самое не балуй.


андр.   (2008-06-10 11:26:00) [5]


> clickmaker ©   (10.06.08 11:18) [6]
> eventdata()?

Хм... Интересная функция только наверное она будет только затормаживать процесс обработки триггера...


clickmaker   (2008-06-10 11:18:00) [6]

eventdata()?


андр.   (2008-06-10 11:15:00) [7]

Т.е., ответ как я понимаю: "Такой функции нет, и быть ниможет !" ?


Ega23   (2008-06-10 11:13:00) [8]

Пишется программка, которая генерит текст триггера.
запускается в цикле 57 раз.
Всех дел на полчаса-час от силы.


DrPass   (2008-06-10 11:12:00) [9]

Напиши скрипт генерации триггеров, если они у тебя все одинаковые


андр.   (2008-06-10 11:10:00) [10]


> clickmaker ©   (10.06.08 11:01) [1]
> а в чем прикол?
> SET @TableName = 'Table1' ?


57 таблиц. На каждую необходим триггер который выполняет функцию логирования действий.

Скелет триггера примерно один. Так вот хотелось бы чтоб не вписывать в каждом триггере имя его "вызывателя", а сделать это возвращением значения функции. Тем самым уйти от необходимости лезть в каждый триггер и исправлять...


clickmaker   (2008-06-10 11:01:00) [11]

а в чем прикол?
SET @TableName = 'Table1' ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо