我想保留一个表作为历史记录并将其替换为空白表。我如何通过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