sql跨数据库复制表数据
来源:互联网 发布:淘宝怎么退订服务 编辑:程序博客网 时间:2024/05/16 06:23
不同服务器数据库之间的数据操作
不同数据库之间复制表的数据的方法:
当表目标表存在时:
insert into 目的数据库..表 select * from 源数据库..表
当目标表不存在时:
select * into 目的数据库..表 from 源数据库..表
--如果在不同的SQL之间:
insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)
select * from 源数据库..表
--创建链接服务器
exec sp_addlinkedserver 'ITSV ',' ','SQLOLEDB ', '远程服务器名或ip地址'
exec sp_addlinkedsrvlogin'ITSV ','false ',null,'用户名 ','密码 '
--查询示例
select * from ITSV.数据库名.dbo.表名
--导入示例
select * into 表from ITSV.数据库名.dbo.表名
--以后不再使用时删除链接服务器
exec sp_dropserver'ITSV ','droplogins '
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select * fromopenrowset( 'SQLOLEDB ','sql服务器名 '; '用户名'; '密码',数据库名.dbo.表名)
--生成本地表
select * into 表from openrowset('SQLOLEDB ', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名)
--把本地表导入远程表
insert openrowset( 'SQLOLEDB ','sql服务器名 '; '用户名'; '密码',数据库名.dbo.表名)
select *from 本地表
--更新本地表
update b
set b.列A=a.列A
from openrowset('SQLOLEDB ', 'sql服务器名'; '用户名'; '密码',数据库名.dbo.表名)as ainner join 本地表 b
on a.column1=b.column1
--openquery用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ',' ','SQLOLEDB ', '远程服务器名或ip地址'
--查询
select *
FROM openquery(ITSV,'SELECT * FROM 数据库.dbo.表名')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名')
select * from 本地表
--更新本地表
update b
set b.列B=a.列B
FROM openquery(ITSV,'SELECT * FROM 数据库.dbo.表名') as a
inner join 本地表 b on a.列A=b.列A
--3、opendatasource/openrowset
SELECT *
FROM opendatasource( 'SQLOLEDB ','Data Source=ip/ServerName;User ID=登陆名;Password=密码' ).test.dbo.roy_ta
--把本地表导入远程表
insert opendatasource( 'SQLOLEDB ','Data Source=ip/ServerName;User ID=登陆名;Password=密码').数据库.dbo.表名
select * from
-----------------------------------------------------------------------------------------------------------------------------------
好吧,如果上面看得烦下面有个更容易理解的例子:
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' --密码
Select * from DBVIP.pubs.dbo.orders
/////////////////////////////ORACLE////////////////////////////
Exec sp_droplinkedsrvlogin demo,Null
Exec sp_dropserver demo
go
EXEC sp_addlinkedserver
@server ='demo',
@srvproduct='Oracle',
@provider='MSDAORA',
@datasrc='ServiceName'
EXEC sp_addlinkedsrvlogin
'demo',
'false',
NULL,
'userid',
'password'
go
SELECT * FROM OPENQUERY(demo ,'select * from tbdemo' )
UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')
SET name = 'hello';
INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')
VALUES ('hello');
DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name = ''hello''');
-------------------------------------------具体例子------------------------------------------------------------
if exists(select 1 from master.dbo.sysservers where srvname = 'test')
begin
exec sp_droplinkedsrvlogin 'test','sa'
exec sp_dropserver 'test'
end
--建立连接服务器
EXEC sp_addlinkedserver 'test', 'ms','SQLOLEDB', '192.168.1.99'
exec sp_addlinkedsrvlogin 'test','false',null,'sa',''
select * from test.db_film.dbo.T_film
go
if exists(select 1 from master.dbo.sysservers where srvname = 'test')
begin
exec sp_droplinkedsrvlogin 'test','sa'
exec sp_dropserver 'test'
end
go
- sql跨数据库复制表数据
- SQL跨数据库复制表数据
- 快速复制数据库表中的数据SQL
- SQL跨数据库复制表
- sql 表数据复制
- 复制表数据Sql
- [sql]复制表数据
- 跨数据库复制数据
- 数据库表数据复制
- 数据库表数据复制
- 数据库复制表数据
- 数据库复制表数据
- Insert into select SQL跨数据库复制数据
- sql server中数据库之间复制表数据
- 【转】SQL跨数据库复制表
- sql server 跨数据库复制表
- SQL Server 跨服务器 不同数据库之间复制表的数据的方法:
- SQL Server 跨服务器 不同数据库之间复制表的数据
- IOS开发之----Category的使用
- Subversion服务器搭建
- UITableView 方法总结
- 收藏
- Android Activity 生命周期的透彻理解
- sql跨数据库复制表数据
- 理解WebKit和Chromium: Chromium的多线程机制
- pydev简介
- 远程桌面突然不能粘贴的解决方案
- IOS和Android开发的一些个人感受
- Android TextView 加入图片
- 使用JEditorPane 显示WEB页面
- zoj 3466 The Hive II
- ntp服务在局域网内的搭建