PDA

View Full Version : ذخیره تغییرات رکورد ها



javad3151
دوشنبه 12 تیر 1385, 19:18 عصر
سلام
در یک دیتابیس (یه سیستم دانشجویی) یک تیبل اصلی هست و 20 تا تیبل دیگه هم به اصلی لینک هستند . چطور میشه یه تریگر نوشت که هر وقت در هر کدام از رکوردها تغییری(آپدیت) اتفاق افتاد نام یوزر و تاریخ تغییرات (یه تیبل مخصوص همین کار دیده شده)را ذخیره کنه؟؟؟
من 3 تریگر به این صورت نوشتم:


ALTER trigger [sheet_delete]
on [dbo].[sheet1]
for delete as
insert into r_change(userid,change_mode)values(@@IDENTITY,N'De lete')


ALTER trigger [sheet_update]
on [dbo].[sheet1]
for update as
insert into r_change(userid,change_mode)values(@@IDENTITY,N'Up date')


ALTER trigger [sheet_insert]
on [dbo].[sheet1]
for insert as
insert into r_change(userid,change_mode)values(@@IDENTITY,N'In sert')


ولی مشکل داره مثلا وقتی رکوردی رو حذف می کنه نمی دونم کدوم رکورد بوده (کد رو برنمیگردونه) در ضمن نمی دونم چطور باید نام یوزر یا مثلا آدرس ipیوزر رو گرفت

Kamyar.Kimiyabeigi
سه شنبه 13 تیر 1385, 07:47 صبح
دوست عزیز نحوه Trigger نویسی در BOL به طور کامل گفته شده اینم یک مثال براتون :


USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'Trg_Log' AND type = 'TR')
DROP TRIGGER Trg_Log
GO
CREATE TRIGGER Trg_Log
ON Table1
FOR UPDATE
AS

INSERT INTO tbl_Log
(FirstName, LastName)
SELECT FirstName, LastName
FROM tbl_ActiveUsers

GO