通过一条sql语句访问不同数据库的方法

原创 2005年04月29日 15:12:00
通过一条sql语句访问不同数据库的方法


在我们做数据库程序开发的时候,经常会遇到这种情况:需要将一个数据库服务器中的数据导入到另一个数据库服务器的表中。通常我们会使用这种方法:先把一个数据库中的数据取出来放到某出,然后再把这些数据一条条插入到目的数据库中,这种方法效率较低,写起程序来也很繁琐,容易出错。另外一种方法是使用bcp或BULK INSERT语句,将数据导入到一个文件中,再从此文件中导出到目的数据库,这种方法虽然效率稍高,但也有很多不如意的地方,单是在导入时怎样找到另外一台机器上的数据导入文件就很麻烦。
最方便的一种方法,我想也是效率最高的方法,应该是这样:
比如有两个数据库服务器:zl和ljw,里面都有一个数据库taxitemp(也可以不同名),数据库里有一个表,叫users,我们现在想把zl中的users数据导入到ljw中,可以这样写sql语句(假设现在连接的是zl数据库):
insert into ljw.taxitemp.dbo.users
select * from users
这样,通过一条sql语句就完成了不同数据库服务器之间的数据复制。
有人会说,这种sql语句我也会写,我也想到了,但是没办法执行。
的确,单纯的这样一条语句没办法执行,因为数据库不知道ljw是什么服务器,也不知道怎样登录,当然会报错。
我们可以这样解决注册远程数据库服务器和登录的问题:
注册远程数据库服务器:
EXEC sp_addlinkedserver 'ljw', N'SQL Server'
注册远程数据库服务器的登录方法:
EXEC sp_addlinkedsrvlogin 'ljw', 'false', NULL, 'sa', 'zz'
至于这两个存储过程的详细用法,我就不多讲了,大家看看帮助就明白了。

只要我们先执行远程数据库服务器注册和登录方法注册,然后就可以把远程数据库当成本地数据库使用了

通过一条sql语句访问不同数据库服务器中的数据库对象的方法

跨库访问方法   在我们做数据库程序开发的时候,经常会遇到这种情况:需要将一个数据库服务器中的数据导入到另一个数据库服务器的表中。通常我们会使用这种方法:先把一个数据库中的数据取出来放到某出,然后...

Oracle数据库的SQL查询语句查询每个用户最近一次的登录记录并且只显示一条

有如下数据库及数据:create table oness( oids number(4) primary key, Names varchar2(10) not null,...

【故障处理141119】一次数据库不繁忙时一条sql语句2个执行计划导致业务超时的故障处理

故障原因: 一条select有两个执行计划,在sqlplus中执行选择好的执行计划,只要40毫秒,而在程序中执行选择了差的执行计划,要1分23秒左右,导致前台业务超时报错。 故障解决: 使用o...
  • cn_mos
  • cn_mos
  • 2014年11月20日 10:30
  • 755

一次数据库不繁忙时一条sql语句2个执行计划导致业务超时的故障处理

故障原因: 一条select有两个执行计划,在sqlplus中执行选择好的执行计划,只要40毫秒,而在程序中执行选择了差的执行计划,要1分23秒左右,导致前台业务超时报错。 故障解决: 使用...
  • wanglha
  • wanglha
  • 2014年11月21日 11:08
  • 672

不同数据库的参数化SQL语句的写法

之前一直没有使用Oracle,现在刚刚使用,发现他们的参数化SQL语句

奇怪!同一条sql语句在数据库和代码中执行结果不同?!当然是人错了 ……

sql语句就是它:      select count(1) from syscolumns where [id]=object_id( 'tablecommon' )   ...

mybitis 用不同数据库模糊查询的 sql 语句的写法

oracle数据库:  Java代码   SELECT   *   FROM   user   WHERE   name like CONCAT('%',#{name...

Java程序和Oracle数据库调用相同的SQL查询语句,结果却不同

package org.programming.student; import java.sql.*; import java.text.ParseException; import java.te...

不同数据库在C#中使用参数化SQL语句的大同小异

在C#中经常需要跟各种数据库打交道,在不实用存储过程的情况下,使用参数化SQL语句一定程度上可以防止SQL注入,同时对一些较难赋值的字段(如在SQL Server中Image字段,在Oracle中Cl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过一条sql语句访问不同数据库的方法
举报原因:
原因补充:

(最多只允许输入30个字)