PDA

View Full Version : پیدا کردن user پاک کننده اطلاعات یک جدول



nAVA470
شنبه 13 آذر 1389, 15:06 عصر
چگونه میتوان یک تریگر برای یک table نوشت به شکلی که بعد از پاک کردن یک رکورد توسط یک user ، نام و یاuser name شخص پاک کننده رکورد مشخص شود.

حمیدرضاصادقیان
شنبه 13 آذر 1389, 15:41 عصر
سلام.
نیازی به تریگر ندارید.
راحتترین راه این هست که در بخش حذف برنامه تون ، یک دستور inSert بنویسید و مشخصات اون کاربر رو در جدول لاگ کاربران ذخیره کنید.
چون وقتی کاربری وارد سیستم می شود توسط یک id و name وارد می شود . شما میتونید یک کلاس برای user ها داشته باشید و داخل اون نیز user که داخل سیستم هست رو مشخصاتش رو نگه داری کنید.
بعد در هر قسمت از برنامه که حذف انجام میدید کافیه این مشخصات رو در یک جدول دیگه که برای لاگ کاربران درنظر میگیرید اضافه کنید.
موفق باشید

mbasirati
شنبه 13 آذر 1389, 23:13 عصر
سلام
به وسیله دستور زیر میتونید این کار رو انجام بدید.با این فرض که من یه جدول به نام stt دارم که اطلاعات دانشجویان توش ثبت میشه ، من تریگری برای این جدول نوشتم که هرسطری که حذف میشه شماره دانشجویی و نام user در جدولی به نام del_st ثبت میشه.
موفق باشید
CREATE TRIGGER t1 ON stt
AFTER DELETE
AS
DECLARE @s INT
SELECT @s=st# FROM DELETED
INSERT INTO del_st (st#,user) VALUES (@s)

حمیدرضاصادقیان
یک شنبه 14 آذر 1389, 07:26 صبح
سلام
به وسیله دستور زیر میتونید این کار رو انجام بدید.با این فرض که من یه جدول به نام stt دارم که اطلاعات دانشجویان توش ثبت میشه ، من تریگری برای این جدول نوشتم که هرسطری که حذف میشه شماره دانشجویی و نام user در جدولی به نام del_st ثبت میشه.
موفق باشید
CREATE TRIGGER t1 ON stt
AFTER DELETE
AS
DECLARE @s INT
SELECT @s=st# FROM DELETED
INSERT INTO del_st (st#,user) VALUES (@s)

دوست عزیز دستور شما درسته. فقط ایرادی که داره اینه که جواب دوستمون رو نمیده!!
ایشون میخواد ببینه کاربری که وارد سیستم شده مثلا از جدول خاص وقتی رکوردی حذف میشه مشخصات اون کاربر رو داشته باشه.نه مشخصات همون جدول رو!