如何将数据库中一个表中的数据导入到另一个数据库中的表中?

时间:2022-12-11 17:54:29
如题,现在有两个数据库(不在一台电脑上),现在数据库A中的表A1中有数据,同样另外一台电脑上面有相同的数据库A相同的表A1(有表结构但是没有数据),现在要复制数据到空表中,应该怎么做呢?

10 个解决方案

#1


用链接服务器传输数据.

#2


在这边导出
那边导入。

或者建立链接服务器,不是经常的话还是这边导出那边导入快点。

#3


不同服务器数据库之间的数据操作

--创建链接服务器 
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 * from openrowset('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 a inner 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 本地表 

#4


引用 3 楼 dawugui 的回复:
不同服务器数据库之间的数据操作

--创建链接服务器 
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' 

--查询示例 
select * from ITSV.数据库名……


#5


两种方式 比较快的是把有数据的备份了拿到没有数据的机器上还原

另外就是用链接服务器

#6


引用 2 楼 geniuswjt 的回复:
在这边导出
那边导入。

或者建立链接服务器,不是经常的话还是这边导出那边导入快点。

导出后但是再导入的时候出问题了呢!

#7


引用 5 楼 fredrickhu 的回复:
两种方式 比较快的是把有数据的备份了拿到没有数据的机器上还原

另外就是用链接服务器

小F高手指点下呗~~~今天一直备份,.dtsx .xls和.csv格式的都导出了,但是导入的时候就会报错。两个数据库的版本不一致,一个05一个08的!

#8


exec sp_addlinkedserver 'sample','','SQLOLEDB','192.168.1.101','','','dbA'
exec sp_addlinkedsrvlogin 'sample','false',null,'sa','yourpassword'
go
insert into sample.dbA.dbo.A1
select * from A1
go
exec sp_dropserver 'sample','droplogins'


数据库版本不同不要紧的.

#9


引用 8 楼 qianjin036a 的回复:
SQL code
exec sp_addlinkedserver 'sample','','SQLOLEDB','192.168.1.101','','','dbA'
exec sp_addlinkedsrvlogin 'sample','false',null,'sa','yourpassword'
go
insert into sample.dbA.dbo.A1
select * from……

3Q~~~~我是小菜鸟!O(∩_∩)O哈哈~

#10


引用 3 楼 dawugui 的回复:
不同服务器数据库之间的数据操作

--创建链接服务器 
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' 

--查询示例 
select * from ITSV.数据库名……

这个还是不会用呢?怎么办呢?急求啊!

#1


用链接服务器传输数据.

#2


在这边导出
那边导入。

或者建立链接服务器,不是经常的话还是这边导出那边导入快点。

#3


不同服务器数据库之间的数据操作

--创建链接服务器 
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 * from openrowset('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 a inner 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 本地表 

#4


引用 3 楼 dawugui 的回复:
不同服务器数据库之间的数据操作

--创建链接服务器 
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' 

--查询示例 
select * from ITSV.数据库名……


#5


两种方式 比较快的是把有数据的备份了拿到没有数据的机器上还原

另外就是用链接服务器

#6


引用 2 楼 geniuswjt 的回复:
在这边导出
那边导入。

或者建立链接服务器,不是经常的话还是这边导出那边导入快点。

导出后但是再导入的时候出问题了呢!

#7


引用 5 楼 fredrickhu 的回复:
两种方式 比较快的是把有数据的备份了拿到没有数据的机器上还原

另外就是用链接服务器

小F高手指点下呗~~~今天一直备份,.dtsx .xls和.csv格式的都导出了,但是导入的时候就会报错。两个数据库的版本不一致,一个05一个08的!

#8


exec sp_addlinkedserver 'sample','','SQLOLEDB','192.168.1.101','','','dbA'
exec sp_addlinkedsrvlogin 'sample','false',null,'sa','yourpassword'
go
insert into sample.dbA.dbo.A1
select * from A1
go
exec sp_dropserver 'sample','droplogins'


数据库版本不同不要紧的.

#9


引用 8 楼 qianjin036a 的回复:
SQL code
exec sp_addlinkedserver 'sample','','SQLOLEDB','192.168.1.101','','','dbA'
exec sp_addlinkedsrvlogin 'sample','false',null,'sa','yourpassword'
go
insert into sample.dbA.dbo.A1
select * from……

3Q~~~~我是小菜鸟!O(∩_∩)O哈哈~

#10


引用 3 楼 dawugui 的回复:
不同服务器数据库之间的数据操作

--创建链接服务器 
exec sp_addlinkedserver 'ITSV' , '' , 'SQLOLEDB' , '远程服务器名或ip地址' 
exec sp_addlinkedsrvlogin 'ITSV' , 'false' , null , '用户名' , '密码' 

--查询示例 
select * from ITSV.数据库名……

这个还是不会用呢?怎么办呢?急求啊!