IMANAZADI
جمعه 15 مرداد 1395, 07:08 صبح
سلام
دوستان به چه شکل میشه تغییرات کلی یک جدول در دیتابیس رو کنترل کرد ؟؟؟
به طور مثال اینکه یک رکورد را چه یوزری ایجاد کرده در چه تاریخی ، چه یوزری رکورد رو ویرایش کرده و مقدار قبل از ویرایش چه بوده و بعد از ویرایش چه شده ، یک رکورد رو چه یوزری حذف کرده و رکورد حذف شده چه مقادیری داشته ؟؟؟؟؟؟
En_MK
یک شنبه 17 مرداد 1395, 11: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
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.