ورود

View Full Version : رابطه بین دوجدول از دو دیتابیس مختلف



soha_smb
سه شنبه 14 آبان 1392, 19:45 عصر
آیا راهی وجود داره که بین یک جدول از یک دیتابیس با جدول دیگری از دیتا بیس دیگری ارتباط برقرار کرد؟
اگه میشه چطوری؟
من یه db پرسنلی دارم ،حالا می خوام از اطلاعات db پرسنل در برنامه دیگه ای با db جداگانه استفاده کنم.
مثلا در جداول db برنامه جدید کدپرسنلی را نگه دارم تا اطلاعات مختلف رو از dbپرسنلی بخونه.
لطفا راهنمایی کنید؟

Reza_Yarahmadi
چهارشنبه 15 آبان 1392, 08:46 صبح
بصورت مستقیم نمیشه بین دو دیتابیس رابطه برقرار کرد.
اگر فقط میخواید به اطلاعات دیتابیس دوم دسترسی داشته باشید :
- اگر هر دو دیتابیس روی یک سرور قرار داره فقط کافیه اسم دیتابیس رو قبل از Schema قرار بدید
Select * From DataBase2.dbo.YourTable Where ...
- اگر دیتابیس روی سرور دیگه ای قرار دارید با استفاده از ایجاد یک لینک سرور (http://technet.microsoft.com/en-us/library/ff772782.aspx) میتونید این کار رو انجام بدید.

اگر هم میخواید وابستگی بین دو جدول وجود داشته باشه ، بطور مثال قبل از ایجاد رکورد در دیتابس 1 چک بشه که کد پرسنل در دیتابیس 2 وجود داره یا نه :
- یک تریگر روی دیتابیس 1 ایجاد کنید که چک کنه اطلاعات مورد نظر توی دیتابیس 2 وجود داشته باشه
CREATE TRIGGER dbo.MyTableTrigger
ON
dbo.MyTable, AFTER INSERT, UPDATE
AS
BEGIN
IF NOT EXISTS(select PK from DB2.dbo.TableName where PK in (Select FK from inserted)
BEGIN
-- Handle the Referential Error Here
END
END
- اگر فقط چک کردن زمان ثبت رو دارید میتونید یک تابع بنویسید که کار چک کردن اعتبار اطلاعات وارد شده رو بررسی کنه و ...
CREATE TABLE YourTableName
(
EmployeeID int CHECK (dbo.IsValidEmployeeID(EmployeeID) = 1)
)
در مثال بالا اگه خروجی تابع IsValidEmployeeID برابر 1 باشه به معنی معتبر بودن است.