JR 精品文章 - sql server 中跨数据库操作
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » 数据库相关 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
sql server 中跨数据库操作
yutian0761 原创   更新:2007-10-29 12:20:11  版本: 1.0   

首先以dba用户执行以下两句脚本,(注意只有dba用户有权限执行以下脚本)
exec sp_addlinkedserver 你的数据库连接名字 ,'','SQLOLEDB',你的数据库url及端口

exec sp_addlinkedsrvlogin 你的数据库连接名字,'false',null,数据库用户名,数据库用户密码 

来创建一个数据库连接对象,用来连接另一个数据库,然后在执行跨数据库操作时只需要在你要操作的表前加上 你的数据库连接名字.dbo.表明

例如:我有个库叫billing,有多个库叫subscription1,subscription2,subscription3.........,billing库中有个表叫SuspendRecord,subscrption 库中有个表叫ActivePlan
然后我要将subscription1 库中ActivePlan的phoneNumber收集到billing库的SuspendRecord表中,可以执行如下语句:
insert into SuspendRecord phoneNumber
select phoneNumber from 你的数据库连接名字.subscription1的库名.dbo.ActivePlan

注:创建数据库连接的语句只能被执行一次,如果数据库中存在聪明的连接对象,则再次创建同名的连接对象数据库就会报错,所以创建前需要检查是否存在同名的连接对象,方法如下
select name from sys.servers where name=数据库连接名称

建议:数据库连接名称生成规则:数据库连接地址+数据库名称+用户名+密码的hashCode作为连接名称,这样用户修改数据库用户名、密码等信息将不会对程序造成影响

版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     9       0
作者其它文章: 作者全部文章
评论人:jacky_zz 发表时间: Wed Oct 31 10:11:26 CST 2007
嗯,不错,收藏。
评论人:qinzy 发表时间: Thu Nov 01 08:45:54 CST 2007
太好了,终于学习到了

这个文章共有 2 条评论
主题: 追求“简约不简单”的ORM映射框架 上一篇文章
返回文章列表 返回〔数据库相关〕
下一篇文章 主题: 如何让Informix JDBC驱动程序支持GB18030-2000编码标准


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号