ورود

View Full Version : ثبت تغییرات کلی یک جدول



IMANAZADI
جمعه 15 مرداد 1395, 06:08 صبح
سلام


دوستان به چه شکل میشه تغییرات کلی یک جدول در دیتابیس رو کنترل کرد ؟؟؟


به طور مثال اینکه یک رکورد را چه یوزری ایجاد کرده در چه تاریخی ، چه یوزری رکورد رو ویرایش کرده و مقدار قبل از ویرایش چه بوده و بعد از ویرایش چه شده ، یک رکورد رو چه یوزری حذف کرده و رکورد حذف شده چه مقادیری داشته ؟؟؟؟؟؟

En_MK
یک شنبه 17 مرداد 1395, 10:13 صبح
خود اس کیو ال لاگ میندازه و من یه مطلب میخوندم که میتونید با Appex به نتایج خوبی رسید
اما میتونید روی جداولی که تغییرات براتون اهمین داره تریگر بذارید مثلا این تریگر برای اپدیت وdelete


CREATE TRIGGER yourNewTrigger ON yourSourcetable
FOR INSERT
AS

INSERT INTO yourDestinationTable
(col1, col2 , col3, user_id, user_name)
SELECT
'a' , default , null, user_id, user_name
FROM inserted

go
+++++++++++++++++++++++
CREATE TRIGGER [dbo].[TRIG_MyTable]
ON [dbo].[MyTable]
AFTER INSERT, UPDATE

AS

DECLARE @INS int, @DEL int

SELECT @INS = COUNT(*) FROM INSERTED
SELECT @DEL = COUNT(*) FROM DELETED

IF @INS > 0 AND @DEL > 0
BEGIN

-- a record got updated, so log accordingly.

INSERT INTO MyLogTable
SELECT 'New Values', getdate() FROM INSERTED

INSERT INTO MyLogTable
SELECT 'Old Values', getdate() FROM DELETED

END

ELSE
BEGIN

-- a new record was inserted.

INSERT INTO MyLogTable
SELECT 'Insert', getdate() FROM INSERTED

END