SQL Server中将数据复制到另一张表
一、代码复制(推荐)
SQL Server中,如果目标表存在:
insert
into
目标表``select
*``from
原表;
SQL Server中,,如果目标表不存在:
select
*``into
目标表``from
原表;
补充:
Oracle中,如果目标表不存在:
create
table
目标表``as
select
*``from
原表;
---------------------------------------------
An explicit value for the identity column in table 'User_Role' can only be specified when a column list is used and IDENTITY_INSERT is ON.
使用 insert
into
目标表``select
*``from
原表; 的时候,有时会遇到这个异常,因为自增长列不需要插入数据,将 * 改成不是自增长的列就可以了。如:
insert
into
目标表``select
id,name``from
原表;
--------------------------------------------
SQL Server中,,如果目标表不存在:select
*``into
目标表``from
原表; 去复制表的话,发现自增长的属性没有复制过去,所以呢,如果有自增长的列建议先把表结构手动复制过去,在避开自增长列(否则会出现上面的异常)将数据添加进去,如:
insert into qc_permission(name,fatherid,url) select name,fatherid,url from [QCDB1].[QCDB].[dbo].qc_permission
注:我避开了id这个自增长列。
-————————————————————————————————-
二、手动复制
1、找到想要复制的表右键如下
打开窗口后,Ctrl + A 全选内容。
接着到目标数据库,“ 新建查询 ” 后粘贴,将第一行的数据库名称换成目标数据库名称,如下
然后执行,到目前表结构已经弄过来了。
三、表数据迁移
前面做的将表结构复制过去了,但表的内容怎么弄呢?
在目标数据库右击,找到导入数据,点击进入”SQL Server导入导出向导“,根据提示步骤操作。
选择源数据库数据。
接着选择目标(目标数据库)、指定表复制或查询。按提示下一步操作即可。
我的操作过程一直出现错误,暂未解决。
网上查到的解决办法如下
但似乎我不太适用,可能是公司的数据库加了操作限制,不过其实用代码也挺方便的。
还没有评论,来说两句吧...