Главная страница
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.028 c
15-1159361351
Проггер
2006-09-27 16:49
2006.10.22
Не посильная задачка :(


1-1158224139
Ruslan D
2006-09-14 12:55
2006.10.22
Работа со строками


15-1159535108
DmitriyG
2006-09-29 17:05
2006.10.22
TurboPower


15-1159654051
VEG
2006-10-01 02:07
2006.10.22
Даже в блокноте нашлось место глюкам


3-1156506680
иван8511
2006-08-25 15:51
2006.10.22
Перехватить ошибку Key violation