php 跨库查询sql server问题

n688com 2010-12-01 06:49:10
现在想查询的sql文中包含两个表 但是两个表分别在不同的数据库中 而且两个数据库在不同的PC上
例如:
主DB(192.168.1.2).USER(表) 辅助DB(192.168.1.3).pay

select user.username,pay.pays from 主DB.user INNER JOIN 辅助DB.pay ON 主DB.id=辅助DB.id
怎么实现最好?


大概查了一下用sp_addlinkedserver貌似可以实现 但是这东西怎么用? 放存储过程里?还是连接主数据库时用?
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuciferStar 2010-12-15
  • 打赏
  • 举报
回复
学习![Quote=引用 4 楼 n688com 的回复:]
嘻嘻 我自己实现了
$dsn = "Driver={SQL Server};Server=主DBIP;Database=主DB;";
$db->Connect($dsn,db_user,db_password);
// ADD
$que = "Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP
EXEC sp_a……
[/Quote]
n688com 2010-12-02
  • 打赏
  • 举报
回复
嘻嘻 我自己实现了
$dsn = "Driver={SQL Server};Server=主DBIP;Database=主DB;";
$db->Connect($dsn,db_user,db_password);
// ADD
$que = "Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP
EXEC sp_addlinkedserver
@server='DBVIP',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='Server2' --要访问的服务器

EXEC sp_addlinkedsrvlogin
'DBVIP', --被访问的服务器别名
'false',
NULL,
'sa', --帐号
'thankyoubobby' --密码";
$rs= $db->Execute($que);
//
return $db;
——————————————————————————
$que = "select user.username,pay.pays from user INNER JOIN DBVIP.fuzhuDB.dbo.pay ON user.id=pay.id";
$rs = $db->Execute($que);

测试可以使用 , 这个发法如何?合理么 效率如何 ?有没更好方案 请指教

LuciferStar 2010-12-02
  • 打赏
  • 举报
回复
好像不行的:(
除非从A读取需要的数据,重构查询,在B里执行。
n688com 2010-12-02
  • 打赏
  • 举报
回复
坐等高人
n688com 2010-12-01
  • 打赏
  • 举报
回复
$dsn = "Driver={SQL Server};Server=主DBIP;Database=主DB;";
$db->Connect($dsn,db_user,db_password);
return $db;
——————————————————————————
$que = "select user.username,pay.pays from 主DB.user INNER JOIN 辅助DB.pay ON 主DB.id=辅助DB.id";
$rs = $db->Execute($que);

——————————————————————————
以上是正常的连接 可以查询主DB数据 但是辅助DB应该怎么连上呢?求助

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧