PDA

View Full Version : تریگر برای آپدیت دو جدول در دو دیتابیس متفاوت



behrad110
چهارشنبه 14 اردیبهشت 1390, 09:52 صبح
سلام .این تریگر خیلی ساده است اما نمیدونم کجاش رو اشتباه نوشتم دوستان راهنمایی کنن ممنون میشم
ارروری که دریافت میکم اینه:

Cannot use the column prefix 'qdb.stbl.dbo'. This must match the object in the UPDATE clause 'saveid'.
و کدی که نوشتم این :


CREATE TRIGGER insertid
ON stbl
FOR UPDATE
AS if update (status)
BEGIN
UPDATE saveid SET pdb.dbo.saveid.statuscode=qdb.stbl.dbo.status
WHERE pdb.dbo.saveid.sid=qdb.stbl.dbo.refid
END

محمد سلیم آبادی
چهارشنبه 14 اردیبهشت 1390, 10:14 صبح
دستور Update رو با این کد تعویض کنین، با این فرض که می خواهید بر اساس داده های جدید بروز رسانی انجام بدین:

UPDATE S
SET S.statuscode = I.[status]
FROM saveid AS S
JOIN inserted AS I
ON S.sid = I.refid;

چنتا نکته:
1. وقتی جدول بروز میشه دو تا اتفاق می افته 1.حذف سطر قبلی 2. درج سطر جدید
2. داده های حذف شده در جدول مجازی به نام deleted نگهداری میشن و از اون طریق قابل دسترسی هستن و هینطور برای سطرهای جدید در inserted
3. شما باید مشخص کنید که می خواهید به داده ی جدید دسترسی پیدا کنید یا قبلی ها
4. فراموش نکنید که با بروز رسانی n رکورد فقط یکبار trigger اجرا میشود