SQL SERVER两个结构相同(或不一样)的表,互相导入数据,方法有两种:数据库
一、使用SQL SERVER 自带的导出、导入功能,在库名上右击,“任务”,导出数据、导入数据,这个操做具体不就很少讲了。网络
二、使用语句直接复制,从XXX表复制数据到YYY表spa
步骤一、首先,须要设置下插入容许自增ID。table
SET IDENTITY_INSERT 表名YYY ON数据类型
若是提示 表 'XXX' 的 IDENTITY_INSERT 已经为 ON。没法为表 'YYY' 执行 SET 操做。方法
那么须要先将XXX表设置为OFF,再执行上面的代码将YYY设置为ON。数据
SET IDENTITY_INSERT 表名XXX OFFword
步骤二、清空原表数据tab
若是原表主键ID不会重复,或者你的原表数据须要保留,那么这一步能够不须要,只要保证不重复便可。co
truncate table 表YYY
步骤三、复制数据
本地表复制
INSERT INTO 表YYY (
[Id] ,
[字段1],
[字段2])
SELECT
[Id] ,
[字段1],
[字段2]
FROM 表XXX
跨机器跨网络复制:
INSERT INTO 表YYY (
[Id] ,
[字段1],
[字段2])
SELECT
[Id] ,
[字段1],
[字段2]
FROM opendatasource( 'SQLOLEDB','Data Source=172.0.0.2;User ID=user;Password=pass').数据库.表XXX
须要注意的是,必需要两边都指定具体的字段名称,不能用*号,不然可能会提示如下错误:
仅当使用了列列表而且 IDENTITY_INSERT 为 ON 时,才能为表'YYY'中的标识
或者会由于字段不对应而提示一些奇怪的错误,例如:
在将 varchar 值 'AAAA' 转换成数据类型 int 时失败