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


  今天遇到這樣的問題,要從一個數據庫中復制一張表的數據到另一個數據庫的同名表,以往我的做法就是將腳本文件導出來,然后執行一下,但是這次我試了一下,由於數據太多,導出的腳本有五百多兆,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;

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM