PDA

View Full Version : کپی گرفتن از یک جدول با استفاده از trigger



benyamin mirzai
دوشنبه 08 مهر 1387, 15:29 عصر
سلام دوستان من در نوشتن trigger ها وارد نیستم در واقع دفعه اول دارم می نویسم می خواهم وقتی یک جدولی update شد سطر مربوطه در یک جدول دیگر نوشته شود ولی به این صورت که نوشتم فقط سطر اخر را می خواند و می نویسد اگر ممکنه کد منو اصلاح کنید
من می خواهم فقط سطر های update شده نوشته شوند
و ایا راهی وجود دارد که مقدار قبل از update در جدول دوم نوشته شود؟



set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER Trigger [lalaj]
On [dbo].[Table_1]
for Update
As
declare @a as int
declare @b as nvarchar(50)
declare @c as nchar(10)
Select @a=a,@b=b,@c=c from [hiiiii].[dbo].[Table_1]
begin
Insert into [hiiiii].[dbo].[Table_2]([a],[b],[c])values(@a,@b,@c)
end

SYNDROME
دوشنبه 08 مهر 1387, 15:56 عصر
می توانید یک Trigger Update بنویسید و سپس از جداول Deleted و Inserted استفاده کنید.
این دو جدول در Update مشخص می کنند چه رکوردهایی ویرایش شده اند.
جدول Deleted رکوردهایی را که حذف می ود مشخص می کند و جودل Inserted رکوردهای جدید را در خود دارد.
موفق باشید

nedata
دوشنبه 08 مهر 1387, 20:21 عصر
سلام



create trigger trgUpdate
on table1
for Update
as
insert into table2(field1,field2)
(Select t1.* from table1 t1 join inserted i on
t1.keyfield=i.keyfield)


در این نمونه کد تعداد فیلدهای جدول 1 و 2 باید با هم برابر باشد