1. 程式人生 > > SQL server 通過SQL語句實現表數據的復制(可跨庫)

SQL server 通過SQL語句實現表數據的復制(可跨庫)

sel clas 中標 sql語句 同時 ssms sms 但是 off

  今天遇到這樣的問題,要從一個數據庫中復制一張表的數據到另一個數據庫的同名表,以往我的做法就是將腳本文件導出來,然後執行一下,但是這次我試了一下,由於數據太多,導出的腳本有五百多兆,ssms根本運行不了。一番搜索找到了以下解決方案:

-- 代碼一
INSERT INTO [database1].[dbo].[table1] ([字段1],[字段2]……)
SELECT [字段1],[字段2]……  FROM  [database2].[dbo].[table2]

  兩處的字段要一一對應;如果遇到有id自增的情況,有大神給的解決方法是:

-- 代碼二
SET IDENTITY_INSERT [table] ON; -- 開啟表中標識列
SET IDENTITY_INSERT [table] OFF; -- 關閉表中標誌列

  可在將以上代碼二兩句分別插在代碼一前後,再執行;但是我沒有實現,可能是姿勢有問題,所以我還是用的笨辦法,就是執行前先設計表,將id設為不自增,執行完再改成自增。
  其實這種寫法也有其他的效果:

-- 同數據庫不同表數據復制
INSERT INTO [table1] ([字段1]……)
SELECT ([字段1]……) FROM [table2];

-- 創建新的表同時復制數據
SELECT [字段1]…… INTO new_table FROM old_table;

  記錄學習一下,錯誤的地方歡迎大佬們指正。

SQL server 通過SQL語句實現表數據的復制(可跨庫)