PDA

View Full Version : شروع كار با Trigger در نسخه هاي مختلف sql server



White.Wit
دوشنبه 31 خرداد 1389, 09:12 صبح
با سلام.
من ميخوام يه تريگر توي بانكم بنويسم اما هيچي در موردش بلد نيستم. تقريبا تمامي مطالب اين سايت رو در مورد تريگر خوندم و چيزاي زيادي ياد گرفتم. اما به جواب دو سوالم نرسيدم.
1- آيا در تمام نسخه هاي sql server 2005 از جمله developer امكان نوشتن تريگر هستش يا نه؟
2- آيا براي يك تريگر روش اينترفيس بدون حالت كدنويسي وجود داره يا نه مثل توليد جدول ويا ... و اگه وجود داره چطور ميشه بهش دسترسي داشت.

خلاصه اينكه قدم اول براي شروع نوشتن يك تريگر رو نمي دونم با اينكه اطلاعات خوبي در مورد اون توي سايت خوندم. فقط براي شروع مشكل دارم.
لطفا اگه كسي ميتونه با عكس يا آدرس دقيق از محيط sql server 2005 منو راهنمايي كنه چون خيلي مهمه.:ناراحت::خجالت:

sia_2007
دوشنبه 31 خرداد 1389, 10:47 صبح
Trigger رو با کد نویسی ایجاد میکنند.
در تمامی نسخه ها هم کاربرد دارد.

ASKaffash
دوشنبه 31 خرداد 1389, 11:05 صبح
سلام
شما صفحه 54 این لینک را مطالعه کن :
http://barnamenevis.org/forum/showthread.php?t=106494

Developer Programmer
دوشنبه 31 خرداد 1389, 11:35 صبح
با استفاده از دستور

Create Trigger myName

تریگر رو شروع میکنن و بعد با استفاده از

on Table

مشخص میکنن که روی چه جدولی باید تریگر فعال بشه.
بعد با استفاده از

for/instead of update,delete,insert

مشخص میکنن که ترگیر به ازای چه عملی و کی باید فعال بشه
در نهایت با استفاده از

as
begin
...
end
بدنه تابع رو مینویسن

حال اگه نیاز داشته باشی به سطری که حذف/ویرایش/اضافه شده دسترسی داشته باشی. باید بدونی که SQL اونها رو در یک جدول موقت به اسم Inserted , Deleted برمیگردونه

select * from inserted


مثال کلی

CREATE TRIGGER reminder2
ON Sales.Customer
AFTER INSERT
AS
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'AdventureWorks2008R2 Administrator',
@recipients = 'danw@Adventure-Works.com',
@body = 'Don''t forget to print a report for the sales force.',
@subject = 'Reminder';
GO



فقط براي شروع مشكل دارم
تعجب من در اینه که چطور دارین برنامه می نویسین در حالیکه از MSDN استفاده نمیکنین؟ اگه واقعا میخواین در برنامه نویسی تحت ویندوز به جایی برسین، استفاده از MSDN از واجباته. کافی بود کلمه Trigger رو درش سرچ میکردین



آيا در تمام نسخه هاي sql server 2005 از جمله developer امكان نوشتن تريگر هستش يا نه؟
Trigger, Stored Procedure و نظیر اینها، در تمام نسخه های SQL Server اجرا میشن



آيا براي يك تريگر روش اينترفيس بدون حالت كدنويسي وجود داره يا نه مثل توليد جدول ويا ... و اگه وجود داره چطور ميشه بهش دسترسي داشت
SQL Server ویزاردی که بشه باهاش Trigger نوشت، به اون شکل نداره؛ به همین دلیل میتونین از ابزارهای جانبی استفاده کنین. یا اینکه به راحتی داخل QA دستورات رو تایپ و اجرا کنین.
اما اگه اصرار دارین که امکانات SQL استفاده کنین، روی + کنار نام جدول دلخواه کلیک کنین تا لیست باز بشه و بعد روی عبارت Trigger رایت کلیک کرده و عبارت New Trigger رو انتخاب کنین.

White.Wit
دوشنبه 31 خرداد 1389, 13:29 عصر
از همه دوستاني كه جواب دادن متشكرم.
به جواب سوالام رسيدم.
درمورد msdn هم نكته ي خوبي بود. استفاده مي كردم . ولي بايد از اين به بعد بيشتر و جدي تر كار كنم.

araz_pashazadeh
پنج شنبه 31 تیر 1389, 18:54 عصر
سلام دوست من
من با کمک راهنمایی های شما تونستم تریگر به شکل زیر بنویسم اما تا اونجایی که من می دونم یکی از قابلیتهای تریگر اجرا شدن در زمان مشخص است ولی در راهنمایی شما مطلبی در این مورد نبود:متفکر:
اگه ممکن بیشتر توضیح بدین ممنون از لطف شما.

CREATE TRIGGER My
ON Produce
AFTER INSERT
AS
BEGIN

INSERT INTO Produce
([ProduceName]
,[CostExam1]
,[CostExam2]
,[CostExam3]
,[CostExam4])
VALUES
('q',
'1',
'2',
'3',
'4')

END
GO
در ضمن اینکه گفتن اطلاعات درج و یا حذف شده را در قالب یک سطر بر می گرداند یک مثال بزنید ممنون میشم.

Developer Programmer
پنج شنبه 31 تیر 1389, 19:06 عصر
اگه ممکن بیشتر توضیح بدین ممنون از لطف شما.
در این تریگر شما گفتی، هر وقت در جدول Produce سطری درج شد، تریگر فعال بشه و اونهم با استفاده از Insert Into یک سطر ایجاد کنه.
قاعدتا اینطوری تریگر، تریگر بعدی رو صدا میکنه و لوپ میشه.

araz_pashazadeh
شنبه 02 مرداد 1389, 10:18 صبح
دوست عزیز اطلاعات من در این ضمینه خیلی کم ممنون می شم اگه از اول من را در این ضمینه راهنمایی کنین:لبخندساده:
در ضمن اگه یک فایل آموزشی باشه که عالی میشه.