PDA

View Full Version : ساخت تريگر برای اطلاع از تغییر رکورد



Fire God
شنبه 04 خرداد 1392, 20:40 عصر
برای تصویر زیر می خوام یک تریگر بنویسم که وقتی کاربر جدیدی اضافه شد یا فیلد پکیج آپدیت شد ، فیلدهای نام و موبایل و ایمیل و پکیج در یک جدول دیگر به نام user2 ذخیره بشه /

http://ir2up.ir/up19/e1113694883121.jpg

Salah Sanjabian
شنبه 04 خرداد 1392, 21:21 عصر
دوست عزیز اول باید خودتون تلاشتون رو بکنید اگه نتونستین دوستان جواب میدن این توتریال رو بخونید
http://www.sqlteam.com/article/an-introduction-to-triggers-part-i

Fire God
شنبه 04 خرداد 1392, 21:55 عصر
چیزی نفهمیدم.
کسی میتونه بنویسه ؟

tooraj_azizi_1035
یک شنبه 05 خرداد 1392, 11:27 صبح
سلام
با استفاده از جدول inserted می تونید در trigger رکوردهای درج شده را بدست آورید و در جدول مقصد (TargetTable) درج کنید:


CREATE TRIGGER Purchasing.LowCredit ON Purchasing.PurchaseOrderHeader
AFTER INSERT
AS

insert into TargetTable
select * from inserted


این یکی رو تست نکردم به نظر درست کار میکنه برای Update:


CREATE TRIGGER TR_UpdateNew
ON Users
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;

DECLARE @user_id INT
SELECT
@user_id = inserted.UserID
FROM
inserted
INNER JOIN
deleted
ON inserted.PrimaryKey = deleted.PrimaryKey
-- It's an update if the record is in BOTH inserted AND deleted

EXEC UpdateProfile @user_id;

END
GO

tooraj_azizi_1035
یک شنبه 05 خرداد 1392, 19:57 عصر
در کد بالا @user_id کد رکوردی است ک به روز شده. می تونید از اون برای به روز کردن استفاده کنید.
مقادیر جدید رو هم باید با select * from inserted where user_id=@user_id بگیرید و در جدول مقصد تاثیر دهید.