我想保留一個表作爲歷史記錄並將其替換爲空白表。我如何通過Management Studio來完成此操作?SQL Server將所有行從一個表複製到另一個表,即重複表
15
A
回答
19
複製你的表到一個表歸檔:
SELECT * INTO ArchiveTable FROM MyTable
刪除表中的所有條目:
DELETE * FROM MyTable
12
7
要麼你可以使用原始SQL:
INSERT INTO DEST_TABLE (Field1, Field2)
SELECT Source_Field1, Source_Field2
FROM SOURCE_TABLE
或者使用嚮導:
- 右鍵點擊數據庫 - >任務 - >導出數據
- 選擇源/目標數據庫
- 選擇源/目標表和 領域
- 將數據複製
然後執行:
TRUNCATE TABLE SOURCE_TABLE
18
select * into x_history from your_table_here;
truncate table your_table_here;
+5
+1,這比選定的答案要好。 – 2010-04-22 17:18:40
+0
有關爲什麼您應該使用TRUNCATE而不是DELETE的更多信息,請參閱http://dba.stackexchange.com/questions/30325/delete-vs-truncate – user1069816 2015-06-24 10:34:37
2
試試這個一個命令就都刪除和插入數據:
DELETE MyTable
OUTPUT DELETED.Col1, DELETED.COl2,...
INTO MyBackupTable
工作樣本:
--set up the tables
DECLARE @MyTable table (col1 int, col2 varchar(5))
DECLARE @MyBackupTable table (col1 int, col2 varchar(5))
INSERT INTO @MyTable VALUES (1,'A')
INSERT INTO @MyTable VALUES (2,'B')
INSERT INTO @MyTable VALUES (3,'C')
INSERT INTO @MyTable VALUES (4,'D')
--single command that does the delete and inserts
DELETE @MyTable
OUTPUT DELETED.Col1, DELETED.COl2
INTO @MyBackupTable
--show both tables final values
select * from @MyTable
select * from @MyBackupTable
OUTPUT:
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(4 row(s) affected)
col1 col2
----------- -----
(0 row(s) affected)
col1 col2
----------- -----
1 A
2 B
3 C
4 D
(4 row(s) affected)
-2
這將工作:
select * into DestinationDatabase.dbo.[TableName1] from (
Select * from sourceDatabase.dbo.[TableName1])Temp
相關問題
- 1. 將表從一個SQL Server複製到另一個
- 2. SQL Server將表從一個數據庫複製到另一個
- 3. 將數據錶行從一個表複製到另一個表
- 4. 將行從表複製到另一個
- 5. 將記錄從一個表複製到另一個表sql
- 6. 將SQL中的值從一個表複製到另一個表
- 7. 將一行從一個表格複製到另一個表格
- 8. 如何將一行從一個表複製到另一個表
- 9. php + mysql:將一行從一個表複製到另一個表
- 10. 如何將一列從一個表複製到另一個表在SQL Server中
- 11. 複製行從一個表到另一個,忽略重複
- 12. 將所有表從一個用戶複製到另一個Oracle11g
- 13. 複製從一個表到另一個表的複選行
- 14. 如何將所有提交的行從一個表複製到另一個表
- 15. Mysql觸發器,將所有行從一個表複製到另一個表中
- 16. 如何將一行從一個SQL Server表複製到另一個
- 17. 的SQL Server 2012:從一個表複製列到另一個
- 18. 將行從一個表複製到另一個表?
- 19. 使用javascript將行從一個表複製到另一個表
- 20. 在sql server中將數據從一個表複製到另一個表
- 21. MS SQL Server 2005將數據從一個表複製到另一個表
- 22. 從1表複製到另一個表
- 23. 將觸發器複製行插入到另一個重複表SQL Server 2008
- 24. 複製表,另一個SQL Server
- 25. 表中的所有行復制到另一個表
- 26. sqlite將數據從一個表複製到另一個表
- 27. 將MySQL列從一個表複製到另一個表
- 28. 在MySQL中將值從一個表複製到另一個表
- 29. 將唯一數據從一個表複製到另一個表
- 30. 從一個表到另一個表中的SQL複製字段
冠軍!謝謝! – iamjonesy 2010-04-22 14:17:21
只有當ArchiveTable尚未創建時纔可以使用,否則會出現錯誤「數據庫中已存在名爲'ArchiveTable'的對象。」 – Harvey 2016-09-15 10:35:14
TRUNCATE比DELETE更好。 – 2018-02-09 15:40:17