Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

Как пользоваться тригеррами ....   Найти похожие ветки 

 
return   (2006-08-29 17:16) [0]

Как пользоваться тригеррами ? Как изменив одну таблицу, изменить несколько других автоматически?
Приведите пожалуйсто пример.


 
Ega23 ©   (2006-08-29 17:21) [1]


CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
   { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
       [ WITH APPEND ]
       [ NOT FOR REPLICATION ]
       AS
       [ { IF UPDATE ( column )
           [ { AND | OR } UPDATE ( column ) ]
               [ ...n ]
       | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
               { comparison_operator } column_bitmask [ ...n ]
       } ]
       sql_statement [ ...n ]
   }
}



 
Ega23 ©   (2006-08-29 17:22) [2]

Пример:

USE pubs
IF EXISTS (SELECT name FROM sysobjects
     WHERE name = "employee_insupd" AND type = "TR")
  DROP TRIGGER employee_insupd
GO
CREATE TRIGGER employee_insupd
ON employee
FOR INSERT, UPDATE
AS
/* Get the range of level for this job type from the jobs table. */
DECLARE @min_lvl tinyint,
  @max_lvl tinyint,
  @emp_lvl tinyint,
  @job_id smallint
SELECT @min_lvl = min_lvl,
  @max_lvl = max_lvl,
  @emp_lvl = i.job_lvl,
  @job_id = i.job_id
FROM employee e INNER JOIN inserted i ON e.emp_id = i.emp_id
  JOIN jobs j ON j.job_id = i.job_id
IF (@job_id = 1) and (@emp_lvl <> 10)
BEGIN
  RAISERROR ("Job id 1 expects the default level of 10.", 16, 1)
  ROLLBACK TRANSACTION
END
ELSE
IF NOT (@emp_lvl BETWEEN @min_lvl AND @max_lvl)
BEGIN
  RAISERROR ("The level for job_id:%d should be between %d and %d.",
     16, 1, @job_id, @min_lvl, @max_lvl)
  ROLLBACK TRANSACTION
END




Страницы: 1 вся ветка

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
15-1159403751
Ketmar
2006-09-28 04:35
2006.10.22
ничего не понимаю... %-(


2-1159873794
id
2006-10-03 15:09
2006.10.22
Автозапуск


2-1159887167
lobach
2006-10-03 18:52
2006.10.22
Поиск по всему диску


2-1160383341
aht
2006-10-09 12:42
2006.10.22
Access+ADO


15-1159027187
Piter
2006-09-23 19:59
2006.10.22
Неправильная работа "GetShortPathName"