با سلام
من می خوام یک تریگر update که log جدول x رو ثبت کنه و مقادیر قبل از بروزرسانی و بعد از بروزرسانی را در جدول y ثبت کند. بنویسم که فیلد ds جدول x از نوع ntext می باشد. من کد زیر رو نوشتم مشکلم اینه که مقدار فیلد des قبل از بروزرسانی رو همان مقدار بعد تغییر قرار می دهد.لطفا راهنمایی کنید.
با تشکر
ALTER trigger [dbo].[testLog]
on [dbo].[X]
for insert, update as
begin
declare @title nvarchar(256)
declare @des nvarchar(MAX)
declare @UpOrIns nvarchar(256)
declare @uidD int
declare @uidI int
set @uidD = ''
set @uidI = ''
Select @uidI=t.id,@title=t.title,@des=t.des
from X t join Inserted on
t.id=Inserted.id
Select @uidD=t.id,@title=t.title,@des=t.des
from X t join deleted on
t.id=deleted.id
--درصورت Insert در جدول X
if ((@UidI <> '') and (@UidD='' ))
begin
set @UpOrIns= 'Ins'
INSERT INTO Y
(id, Title, des,Action)
VALUES (@uidI,@Title,@des, @UpOrIns)
end
--درصورت Update جدول X
if ((@UidI <> '') and (@UidD<>'' ))
begin
INSERT INTO Y
(id, Title,des, Action)
SELECT ID,Title,des ,'UpdBefore'
FROM deleted
set @UpOrIns= 'UpdAfter'
INSERT INTO Y
(id, Title, des,Action)
VALUES (@uidI,@Title,@des, @UpOrIns)
end
end
end