ورود

View Full Version : یک سئوال در مورد Update کردن 2 جدول در Dbهای مختلف



mhaeri
شنبه 28 مرداد 1385, 14:42 عصر
با سلام
من یک سئوال داشتم
فرض کنید Table1 در DB1 و Table2 در Db2 وجود دارند.
روزانه تعدادی رکورد به Table1 اضافه می شود .من میخوام فقط همین رکوردهای جدید که به tabel1 اضافه شدند و درTable2 نیستند رو به Table2 اضافه شوند.
ساختار 2 جدول مثل هم هستند و فقط Table2 دارای 2 فیلد بیش از Tabel1 است.

میشه از Trigger استفاده کنم بعد خودم دستی اون فیلدهایی که توی Table1 نیست رو به Inserted اضافه کنم.؟؟

از Dts میشه استفاده کرد ولی کل Tabel2 رو Delete می کنه و دوباره می سازه و عملیات انتقال رو انجام میده.(حجم رکوردها خیلی بالاست)

از TimeStamp میشه استفاده کرد ولی من نمی خوام فیلدی به Tabel1 اضافه کنم.
باید از Replication استفاده کنم؟؟؟ از Transactional Replication ??? درسته این کار یا خیر؟؟

اگر امکان داره راهنمایی کنید.البته Tolls هایی هم مثل Redgate sql compare
هست ولی میخوام خودم کنترلش کنم و بفهمم چی کار باید کرد?
اگر میشه راهنمایی کنید
ممنون

h_baqery
شنبه 28 مرداد 1385, 18:11 عصر
با تریگر به سادگی امکان پذیره .
مقادیر رو از Inserted انتخاب کنید و در متغیرهایی قرار دهید و سپس متغیرهارو با فیلدهای اضافی به جدول دیگر وارد کنید. یا ساده تر هم میشه با insert into

insert into db2..table2
select t1.f1,t2.f2,@FieldMore1,@FieldMore2
from inserted

البته این تریگر رو توی بانک یک باید قرار دهید .

mhaeri
یک شنبه 29 مرداد 1385, 06:29 صبح
با سلام خیلی ممنون از راهنماییتون
فقط یک سئوالی .اگر Table2 من که در Db2 هست چند فیلد اضافه داشته باشه .از این بابت مشکلی پیش نمیاد؟؟ باز هم استفاده از تریگر مشکل رو حل میکنه؟؟
چون این چند فیلد در Table1 نیست بالطبع در جدول Inserted هم نیست.
ممنون اگر راهنمایی کنید

h_baqery
یک شنبه 29 مرداد 1385, 16:51 عصر
خیر . همانطور که در مثال می بینید منظور از فیلدهایی که با @ شروع شده اند مقادیری هستند که در جدول inserted نیستند و شما مقادیر آنهارو به طور دستی می دهید یا با این متغیرها محاسبه کرده اید .

ho_malaki
یک شنبه 29 مرداد 1385, 17:04 عصر
merci khobb bood