问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql如何将一 个数据库里的某一个表导入另一个数据库同名的表里

发布网友 发布时间:2022-04-29 08:37

我来回答

6个回答

懂视网 时间:2022-05-01 17:11

因为工作中经常需要将数据从一个数据库导入到另一个数据库中,所以将这个功能写成一个存储过程,以方便调用。现在粘贴出来供大家参考:

注意:
1,以下示例中用到了syscolumns,sysobjects等系统视图,在sql2005及以后的版本中,大家也可以使用sys.columns与sys.objects来代替,只要修改对应的字段即可。
2,以下示例还用到了set identity_insert设置,有对该设置不太清楚的朋友可以点击链接查看其用法。
3,结合sys.tables表与游标,大家可以循环调用以下存储过程以实现将一个数据库中所有的表的数据导入到另一个数据库中。

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

create PROCEDURE [dbo].[Usp_Sys_ImportData] @SourceDBName varchar(128),@TargetDBName varchar(128),@TableName varchar(128) AS
/*
存储过程名称:Usp_Sys_ImportData
功能简述:从来源数据库导入指定表数据到目标数据库
相关对象:
参数:@SourceDBName varchar(128) 来源数据库名称
      @TargetDBName varchar(128) 目标数据库名称
      @TableName varchar(128) 表名
*/
SET NOCOUNT ON;
declare @TempSql varchar(max)

--取来源表栏位(不包括计算列)
declare @T_SourceColumn Table(ColumnID int not null,ColumnName varchar(128) not null)
select @TempSql = ‘select t1.colid,t1.name‘
+char(10)+‘from ‘ + @SourceDBName + ‘..syscolumns t1‘
+char(10)+‘join ‘ + @SourceDBName + ‘..sysobjects t2 on t2.id = t1.id‘
+char(10)+‘where t2.name = ‘‘‘ + @TableName + ‘‘‘‘
+char(10)+‘ and t1.iscomputed = 0‘
+char(10)+‘order by t1.colid‘
insert into @T_SourceColumn(ColumnID,ColumnName)
exec(@TempSql)

--取目标表栏位(不包括计算列)
declare @T_TargetColumn Table(ColumnID int not null,ColumnName varchar(128) not null)
select @TempSql = ‘select t1.colid,t1.name‘
+char(10)+‘from ‘ + @TargetDBName + ‘..syscolumns t1‘
+char(10)+‘join ‘ + @TargetDBName + ‘..sysobjects t2 on t2.id = t1.id‘
+char(10)+‘where t2.name = ‘‘‘ + @TableName + ‘‘‘‘
+char(10)+‘ and t1.iscomputed = 0‘
+char(10)+‘order by t1.colid‘
insert into @T_TargetColumn(ColumnID,ColumnName)
exec(@TempSql)

--检查是否有自增列
declare @T_TargetIdentityColumn Table(ColumnID int not null,ColumnName varchar(128) not null)
select @TempSql = ‘select t1.colid,t1.name‘
+char(10)+‘from ‘ + @TargetDBName + ‘..syscolumns t1‘
+char(10)+‘join ‘ + @TargetDBName + ‘..sysobjects t2 on t2.id = t1.id‘
+char(10)+‘where t2.name = ‘‘‘ + @TableName + ‘‘‘‘
+char(10)+‘ and t1.colstat = 1‘
+char(10)+‘order by t1.colid‘
insert into @T_TargetIdentityColumn(ColumnID,ColumnName)
exec(@TempSql)
declare @HasIdentityColumn int
if exists(select * from @T_TargetIdentityColumn)
begin
select @HasIdentityColumn = 1
end
else
begin
select @HasIdentityColumn = 0
end
--取要导入的栏位(共同的栏位)
declare @ColumnList varchar(max)
select @ColumnList = ‘‘
select @ColumnList = @ColumnList + ‘,‘ + t1.ColumnName
from @T_SourceColumn t1,
@T_TargetColumn t2
where t1.ColumnName = t2.ColumnName
order by t1.ColumnID
if left(@ColumnList,1) = ‘,‘
begin
select @ColumnList = substring(@ColumnList,2,len(@ColumnList) - 1)
end
if @ColumnList < > ‘‘
begin
--构造导入数据的SQL
declare @ExecSql varchar(max)
select @ExecSql = ‘alter table ‘ + @TargetDBName + ‘..‘ + @TableName + ‘ disable trigger all‘
+ char(10) + ‘delete from ‘ + @TargetDBName + ‘..‘ + @TableName
if @HasIdentityColumn = 1
begin
select @ExecSql = @ExecSql + char(10) + ‘set identity_insert ‘ + @TargetDBName + ‘..‘ + @TableName + ‘ on‘
end
select @ExecSql = @ExecSql + char(10) + ‘insert into ‘ + @TargetDBName + ‘..‘ + @TableName + ‘(‘ + @ColumnList + ‘)‘
+ char(10) + ‘select ‘ + @ColumnList + ‘ from ‘ + @SourceDBName + ‘..‘ + @TableName
if @HasIdentityColumn = 1
begin
select @ExecSql = @ExecSql + char(10) + ‘set identity_insert ‘ + @TargetDBName + ‘..‘ + @TableName + ‘ off‘
end
select @ExecSql = @ExecSql + char(10) + ‘alter table ‘ + @TargetDBName + ‘..‘ + @TableName + ‘ enable trigger all‘
print @ExecSql
--执行导入
exec(@ExecSql)
if @@error = 0
begin
return 1
end
else
begin
return -1
end
end
else
begin
return 1
end http://www.lmwlove.com/ac/ID807

利用Sql实现将指定表数据导入到另一个数据库示例

标签:

热心网友 时间:2022-05-01 14:19

如果数据库在一台机器上,可以用sql语句实现,方法是在表前面加入实例名,insert 实例名.biao (字段列表) select (字段列表) from 实例名.biao

如果不是,我一般都是用查询结果复制,然后再到另外一个表中编辑模式下的黏贴结果的。

热心网友 时间:2022-05-01 15:37

......表示字段列表

insert into b.dbo.dept(.....) select ... from a.dbo.dept

mysql的话不用写.dbo

提交回答

热心网友 时间:2022-05-01 17:12

如果是在同一个服务器上,可以直接用SQL语句执行,大概写法如下:
insert into B.dbo.dept ( col1,col2,.... )
select col1,col2,...
from A.dbo.dept

热心网友 时间:2022-05-01 19:03

如果是在同一个服务器上,可以直接用SQL语句执行。

SQL(英文全称:Structured Query Language),即结构化查询语言。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。

SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。

热心网友 时间:2022-05-01 21:11

select * into b..dept from a..dept
select * into b..emps from a..emps
sql如何将一 个数据库里的某一个表导入另一个数据库同名的表里

如果是在同一个服务器上,可以直接用SQL语句执行,大概写法如下:insert into B.dbo.dept ( col1,col2,... )select col1,col2,...from A.dbo.dept

如何将一个数据库中的一个表复制到另一个数据库中的表中

如果是追加到另一个表中 inert into b数据库.dbo.a表 select * from a数据库.dbo.a表 where 条件 不同数据库的格式: [数据库名.所有者名.表名]INSERT INTO 数据库B.dbo.表2 SELECT * FROM 数据库A.dbo.表1 WHERE ...

sql怎样把一个表导入我另一个数据库已存在的表中。。。

如果另一个表已经存在,用INSERT INTO 比如:有两个表A(A1,A2,A3),B(B1,B2) 我要将A表的A1,A2数据导入到B表中,语句如下 INSERT INTO B(B1,B2)SELECT A1,A2 FROM A 两对应的字段数据类型要求一样,否则可能会出错

SQL语句 怎么把一个表的数据复制到另外一个表里面

1、打开SQL,登录到一个数据库中,依次点击“工具”——“导出表”,在弹出的界面中选择一个用户,列出这个用户下面的所有表。2、在列出的表中选择其中一个,然后选择下面的“SQL插入”选项卡,在“输出文件”选择框中选择一个路径并填写文件名,然后点击“导出”按钮,则可导出一个关于该表结构和记录...

MSSQL里面如何把一个数据库表的内容,完全导入到另一个数据库的表当中...

在企业管理器里操作如下 1、右键点A库,选导出数据 2、根据导出/导入向导,一步一步做,到第三步的时候,选择“用一条查询指定要输出的数据”,点下一步 3、输入查询语句select * from a 一直点下一步,直到把向导完成。4、在B库中会出现一个叫“结果”的表,重新命名这个表就可以了。

sql如何把一个数据库中的表 复制到另一个数据库中去

用临时表备份你的数据表 再在另一个库去吧临时表示局倒腾到你的表中 或者再用备份表方式将临时表及其数据本分到你的库中 备份表及其数据语法:select 表.字段(即列),表.字段2,表.字段3 into 新表名字 from 原来的表 即是上面的"表.字段"的表 临时表只要加个#符号就表示临时表 ...

SQL SERVER中,如何把一个表中的数据导入到另一个表中?(不同数据库之间...

不同数据库之间的表导入方法:1:选择目标数据库——鼠标右键——任务——导入数据。2:配置数据库来源 3:配置完成后选择下一步,设置目标数据库。4:目标传输方式最好是选择,Microsoft OLE DB Provider for SQL Server方式,然后设置目标数据库服务器地址,使用SQL Server 身份验证,设置好账号密码后...

SQL SERVER 数据库 怎么从一个服务器一个表中把数据插入到另一个服务...

select * from srv_lnk.数据库名.dbo.表名 --导入示例:select * into 表 from srv_lnk.数据库名.dbo.表名go--以后不再使用时删除链接服务器 exec sp_dropserver ''srv_lnk'',''droplogins''二、--如果只是临时访问,可以直接用openrowset --查询示例:select * from openrowset(''SQLOLEDB'...

sql server怎样把一个数据库中的表移动到另一个数据库中

第一步,复制表结构:在表上面右击——&gt;编写表脚本为:——&gt;Create到——&gt;新查询编辑器窗口,你也可以保存为sql文件,将新查询编辑器窗口最上面的一句话USE [olddatabase]中的“olddatabase”修改为“newdatabase”,其中olddatabase为源数据库名,newdatabase为目标数据库名,点击上面的“执行”按钮...

sql Server数据库如何将一个库中的数据导入另一个库中

如果是一个实例下的不同数据库的话,跟操作同一个库时是一样的 只要在要操作的表前面添加数据库名相关信息就可以了 如:select into test1.dbo.to from test2.dbo.from 如果是不同实例的数据库之间的导入就比较麻烦了,首先需开启Distributed Transaction Coordinator服务 然后给你个例子 --以下例子...

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...把其中任意三面分上、中、下挂在旗杆上表示不同信号,一共可以组成... 质能转换爱因斯坦的形象比喻 质能转换基本概念 如何制作美味的抹茶冰激凌? 在淘宝网上开游戏卡和手机充值卡的店怎么寻找货源?O(∩_∩)O谢谢 ...它们的直径的比是( ),周长的比是( ),面积的比是( )? 很急啊!_百度... ...比是5比3,半径比是多少,直径比是多少,面积比是多少,你发现了什么... ...周长比是5比3,半径比是(),直径比是(),面积比是()。 鸡肝煮多长时间 ...是5:3,他们的直径比是(),周长比是(),面积比是(),他们的周长与自己半... sql如何把一个数据库中的表 复制到另一个数据库中去 sql语言,从一个数据库中,复制所有表,到另一个数据库中 我想问其实php要学的东西也有很多,能做的东西也不少啊!而且简单高效... 八口有线路由器接四口无线路由器,带五台电脑加WIFI 我有一个无线4口路由器,因为不够用若是再买了8口的有线路由能否连接?会不会影响网速?怎么连接设置呢。 格兰仕微波炉内胆穿了怎么办?有的换吗? 我打算用一个一般4口无线路由器和一个16孔的交换机,不知道这样的路由器能带东西吗?是4M的宽带网线 家用4口路由器没法设置上网 请教高手具体要怎样设置? 格兰仕微波炉转盘电机怎么换 4口宽带路由器和无线路由器怎么连接才能无线有线一起用? 4孔的Wifi路由器最多能支持几个用户?包括手机。 格兰仕微波炉的三角支架不拆螺丝好卸吗? 水星4口路由器怎么设置 路由器什么牌子的好,多少钱??(4口的就行)! 求格兰仕微波炉拆解方法 格兰仕微波炉下边腿怎样拧下来? 现在哪个牌子的路由器好,家庭用的4口的,型号是多少,无线好还是有线好 200~300元的4口无线宽带路由器,功率大且比较稳定的,那一款性价比最高? 格兰仕光波炉内有一颗螺丝钉没有全进去怎么办? 路由器选购:准备买一个4口无线路由,一窍不通,牌子?型号? sql 怎么将一张表复制到另一个服务器的数据库中 如何从sql server一个数据库复制一个表的数据到另一个数据库 求SQL语句,能将一个数据库中的表复制到另一个数据库中。 ...表复制到另一个数据库中只复制列和列属性,跪求SQL语句! 同一个服务器如何将一个数据库中的一些表导入到另一个数据库中_百度知... 如何将一个数据库中的一个表复制到另一个数据库中去 怎么将一个数据库中的表数据复制到另外一个数据库中去 用SQL命令实现不同数据库之间的相同表的复制 Sql Server两个数据库中有一张表的结构一样,怎么快速将一张表中的一部... 华为自带膜好吗 移动平均法怎么计算 移动平均法的方法分类 别人用我的能看到我发的信息吗? 移动平均法简单例题 如何计算会计基础移动平均法 移动加权平均法计算公式 我的如果在别人的手机上登录会看到我的聊天记录吗? 如何理解财务管理移动平均法修正 “月末一次加权平均法”和“移动加权平均法”的公式! 会计核算中加权平均法和移动平均法是什么意思