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