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

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

Триггеры, старое и новое значение поля [D7, MSSQL]


ydv ©   (2004-08-23 15:17:00) 

пишу триггер в СУБД MS SQL, не знаю как получить значение поля до изменения и после?
Пример кода:
CREATE TRIGGER upd_trig ON my_table
FOR UPDATE
AS
 IF UPDATE (test)
 BEGIN
  DECLARE @tmp INT
  SET @tmp = ... - новое значение поля test  
 END


Ega23   (2004-08-24 10:02:00) [1]

Ты проблему по-нормальному изложи, зуб даю, что решение весьма простое и тривиальное...


KSergey   (2004-08-24 09:55:00) [2]

>  [15] ydv   (23.08.04 15:38)
> ну так если он один раз вызывается для всех записей? а мне-то
> надо, посмотреть значение одной записи, значит такой возможности
> нет

Что значит "мне надо"?? Ну можете взять первую из inserted и успокоиться (или последнюю - ничем не хуже)
Но что делать с остальными?


A_N_D   (2004-08-23 16:34:00) [3]

select test from deleted до
select test from inserted после


ydv   (2004-08-23 15:38:00) [4]

ну так если он один раз вызывается для всех записей? а мне-то надо, посмотреть значение одной записи, значит такой возможности нет


Skyle   (2004-08-23 15:34:00) [5]

http://msdn.microsoft.com/library/default.asp
Начинать с поиска "CREATE TRIGGER".


ydv   (2004-08-23 15:32:00) [6]

KSergey ©
во как... и как же мне быть?


KSergey   (2004-08-23 15:32:00) [7]

> [10] ydv   (23.08.04 15:30)
> смотрю в книжках, которые есть - нет там ничего. А вы видно
> сами не знаете? А то давно бы подсказали.

Ответ буквально на вопрос невозможен. Причины - см. [11]


ydv   (2004-08-23 15:30:00) [8]

смотрю в книжках, которые есть - нет там ничего. А вы видно сами не знаете? А то давно бы подсказали.


KSergey   (2004-08-23 15:30:00) [9]

> [5] ydv   (23.08.04 15:23)

И что?
Блин, ну не прорветесь без книжек, ну что за бред-то??
Мысль вам для раздумывания: триггер в MS SQL вызывается на все записи, попавшие в команды INSERT/UPDATE ОДИН РАЗ


Skyle   (2004-08-23 15:29:00) [10]


> Skyle ©   (23.08.04 15:26)

Хотя вру... Ещё в MSDN со всеми вытекающими...


Skyle   (2004-08-23 15:26:00) [11]


> [6] KSergey ©   (23.08.04 15:23)

А может я его только там и читал? ;-)


ydv   (2004-08-23 15:25:00) [12]

у меня его нету


KSergey   (2004-08-23 15:23:00) [13]

> [4] Skyle ©   (23.08.04 15:20)
> BOL - Books OnLine - хелп к клиентским тулзам MS SQL.

Вы его наверное просто не читали ;)


ydv   (2004-08-23 15:23:00) [14]

смотрю - нету ни малейшего намека на
REFERENCING OLD AS ...
           NEW AS ...


Skyle   (2004-08-23 15:20:00) [15]

BOL - Books OnLine - хелп к клиентским тулзам MS SQL.


KSergey   (2004-08-23 15:19:00) [16]

> пишу триггер в СУБД MS SQL, не знаю как получить значение
> поля до изменения и после?

Ну елки... А книги?? Ну нельзя освоить MS SQL путем перебирания сочетаний клавиш - жизни не хватит!!!

см. таблицы Inserted и Deleted в справке.


ydv   (2004-08-23 15:19:00) [17]

нету книг, в инете тоже не нашел


stone   (2004-08-23 15:19:00) [18]

см. inserted tablesв BOL


Наверх

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