通过一条sql语句访问不同服务器中的数据库对象的方法
2008-04-26 20:17
531 查看
在我们做数据库程序开发的时候,经常会遇到这种情况:需要将一个数据库服务器中的数据导入到另一个数据库服务器的表中。通常我们会使用这种方法:先把一个数据库中的数据取出来放到某出,然后再把这些数据一条条插入到目的数据库中,这种方法效率较低,写起程序来也很繁琐,容易出错。另外一种方法是使用bcp或BULKINSERT语句,将数据导入到一个文件中,再从此文件中导出到目的数据库,这种方法虽然效率稍高,但也有很多不如意的地方,单是在导入时怎样找到另外一台机器上的数据导入文件就很麻烦。
最方便的一种方法,我想也是效率最高的方法,应该是这样:
比如有两个数据库服务器:zl和ljw,里面都有一个数据库taxitemp(也可以不同名),数据库里有一个表,叫users,我们现在想把zl中的users数据导入到ljw中,可以这样写sql语句(假设现在连接的是zl数据库):
insertintoljw.taxitemp.dbo.users
select*fromusers
这样,通过一条sql语句就完成了不同数据库服务器之间的数据复制。
有人会说,这种sql语句我也会写,我也想到了,但是没办法执行。
的确,单纯的这样一条语句没办法执行,因为数据库不知道ljw是什么服务器,也不知道怎样登录,当然会报错。
我们可以这样解决注册远程数据库服务器和登录的问题:
注册远程数据库服务器:
EXECsp_addlinkedserver'ljw',N''
注册远程数据库服务器的登录方法:
EXECsp_addlinkedsrvlogin'ljw','false',NULL,'sa','zz'
至于这两个存储过程的详细用法,我就不多讲了,大家看看帮助就明白了。
只要我们先执行远程数据库服务器注册和登录方法注册,然后就可以把远程数据库当成本地数据库使用了。
最方便的一种方法,我想也是效率最高的方法,应该是这样:
比如有两个数据库服务器:zl和ljw,里面都有一个数据库taxitemp(也可以不同名),数据库里有一个表,叫users,我们现在想把zl中的users数据导入到ljw中,可以这样写sql语句(假设现在连接的是zl数据库):
insertintoljw.taxitemp.dbo.users
select*fromusers
这样,通过一条sql语句就完成了不同数据库服务器之间的数据复制。
有人会说,这种sql语句我也会写,我也想到了,但是没办法执行。
的确,单纯的这样一条语句没办法执行,因为数据库不知道ljw是什么服务器,也不知道怎样登录,当然会报错。
我们可以这样解决注册远程数据库服务器和登录的问题:
注册远程数据库服务器:
EXECsp_addlinkedserver'ljw',N''
注册远程数据库服务器的登录方法:
EXECsp_addlinkedsrvlogin'ljw','false',NULL,'sa','zz'
至于这两个存储过程的详细用法,我就不多讲了,大家看看帮助就明白了。
只要我们先执行远程数据库服务器注册和登录方法注册,然后就可以把远程数据库当成本地数据库使用了。
相关文章推荐
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法(转载)
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法
- 通过一条sql语句访问不同数据库的方法
- sql语句 访问不同数据库服务器中的数据库对象的方法
- 怎么打开OPENDATASOURCE权限(不同服务器数据库之间的数据操作) -*-- 在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery) --- OpenDataSource的用法
- SQL语句里连接其它服务器上的数据库(通过TCP/IP),并操作和读取
- 用一条SQL语句实现向数据库中插入多条记录的方法
- 通过SQL语句或数据库,生成数据库模型PDM方法详解
- 在不同SQL服务器上的数据库之间表记录的复制(sql语句实现)
- 在不同SQL服务器上的数据库之间表记录的复制(sql语句实现)
- 奇怪!同一条sql语句在数据库和代码中执行结果不同?!当然是人错了 ……
- [转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第五部分 Insert语句)
- 不同服务器上数据库的链接的SQL 语句(code)
- 在ASP中通过SQL访问ACESS数据库的方法
- 跨服务器与本地服务器不同数据库的SQL操作语句
- 在ADO.NET中使用参数化SQL语句访问不同数据库时的差异
- SERVER 2008 R2 环境下,SQL 2008R2 通过链接服务器访问 ORACLE 8i 数据库的详细教程
- SQL_SERVER 2005 通过链接服务器(Linked Server)访问 ORACLE 9i 的方法