PDA

View Full Version : سوال در مورد trigger



zahra128
سه شنبه 10 آذر 1388, 02:37 صبح
میشه یکی trigger رو واسه من توضیح بده ؟؟؟؟؟که کلا کاربردش چیه (create or replace trigger )

h_baqery
سه شنبه 10 آذر 1388, 08:08 صبح
مي توني خيلي ساده اينجوري شروع كني :
يك تكه كد برنامه كه مي تونه در زمانيكه كه هر گونه تغييري در روي يك جدول خاص انجام شد اجرا بشه .
اگه با برنامه نويسي ويژوال آشنا باشي در اونجا اصلاحي داريم به نام event يعني مثلا زماني كه كليدي فشرده شد يك تكه كد اجرا مي شه . در تريگر هم همينطوره زماني كه عمل ايجاد يا حذف يا تغيير يا تركيبي از اونها روي جدولي انجام شد تكه كد شما يا همون تريگر شما اجرا مي شه.
اميدوارم اساتيد از تعريف خيلي ساده من ناراحت نشن.
در ضمن بگم كه تريگرها تواناييهاي خيلي زيادي دارن و من كه باهاشون زندگي مي كنم.

محمد سلیم آبادی
سه شنبه 10 آذر 1388, 14:48 عصر
سلام دوست عزیز،
SQL Server دو مکانیزم برای جامعیت اطلاعات (Data Integrity) آماده کرده است یکی Constraint ها هستند و یکی Trigger ها.

Trigger خود به دو نوع DDL و DML تقسیم میشه. نوع DML شامل Delete وUpdate وInsert است. مثلا هنگامی که در جدول داده ای درج شود Trigger مربوطه اجرا می شود...

یکی از پرکاربرد ترین موارد استفاده از Tigger برای Log کردن است.

DataMaster
سه شنبه 10 آذر 1388, 19:19 عصر
Trigger خود به دو نوع DDL و DML تقسیم میشه.
یعنی تریگری داریم که در سطح دیتابیس کار کنه؟؟؟

محمد سلیم آبادی
سه شنبه 10 آذر 1388, 21:54 عصر
DDL Trigger ها می توانند هنگام اجرای عباراتی که با Create و Alter و Drop شروع می شوند Fire شوند.
که هم در سطح Database و هم Server عمل می کن.

بطور مثال دستور زیر در database مورد نظر trigger ای ایجاد می کند که مانع از حذف جدول میشود.


CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK
;

zahra128
چهارشنبه 11 آذر 1388, 18:22 عصر
راستش من خیلی مبتدی ام :خجالت:میشه خط به خط اینرو واسم توضیح بدین
create or replace trigger <TRIGGER_NAME>
before insert or update
on <table_name>
for each row
declare
<VARIABLE DECLARATIONS>
begin
<CODE>
exception
<EXCEPTION HANDLERS>
end <TRIGGER_NAME>;
/

بهنام بهمنی
جمعه 13 آذر 1388, 00:12 صبح
کدي که شما نوشته ايد, ظاهرا شبه کد است براي تشريح trigger
در آن گفته شده است که قبل از update or insert و براي هر رديف اضافه يا اصلاح شده يک قطعه کد را اجرا کند