View Full Version : دریافت اطلاعات از 2 database
sasan_vm
سه شنبه 18 دی 1386, 09:58 صبح
سلام
ایا میشه با یک query اطلاعات را از 2 جدول در 2 database مختلف دریافت کرد ؟
متشکرم
mrm0101
سه شنبه 18 دی 1386, 11:17 صبح
سلام . بله می شه . اگر هر دو تا دیتا بیس روی یک سرور باشه با کد زیر
select * from database1.table1 , database2.table2
اگر دیتابیس ها روی دو سرور جدا گانه باشند وضع فرق دارد . در این صورت باید با استفاده از نام کاربری و کلمه عبور و نام سرور به سرور دوم وصل شد. دستور زیر
SELECT *
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=10.8.10.105 ;UID=jahani ;PWD=1231148',
fani_etc.dbo.fani_et)
که در آن 10.8.10.105 آی پی سرور
jahani : نام کاربری
1231145 : کلمه عبور
fani_etc نام دیتا بیس
.fani_et نام جدول
MShirzadi
سه شنبه 18 دی 1386, 13:05 عصر
سلام . بله می شه . اگر هر دو تا دیتا بیس روی یک سرور باشه با کد زیر
کد:
select * from database1.table1 , database2.table2
در این Query باید نام صاحب Db رو هم بیاریم یعنی :
Select * From DBNAme.dbo.TableName
mdrd
سه شنبه 18 دی 1386, 13:51 عصر
سلام . بله می شه . اگر هر دو تا دیتا بیس روی یک سرور باشه با کد زیر
select * from database1.table1 , database2.table2
اگر دیتابیس ها روی دو سرور جدا گانه باشند وضع فرق دارد . در این صورت باید با استفاده از نام کاربری و کلمه عبور و نام سرور به سرور دوم وصل شد. دستور زیر
SELECT *
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=10.8.10.105 ;UID=jahani ;PWD=1231148',
fani_etc.dbo.fani_et)
که در آن 10.8.10.105 آی پی سرور
jahani : نام کاربری
1231145 : کلمه عبور
fani_etc نام دیتا بیس
.fani_et نام جدول
برای اینکه راحت تر این کار رو انجام بدی و هر بار مجبور نباشی provider, username , password رو بدی که البته باعت بالاتر رفتن security هم میشود میتونی یک linked server ایجاد کنی
روی قسمت server objects راست کلیک و New linked server
در query هم کافیه برای ارتباط با سروری که برای آن لینک درست کرده اید به صورت زیر عمل کنید
servername.dbname.schema name.tablename
مثلا: server_2.northwind.dbo.orders
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.