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 時失敗