【发布时间】:2010-04-22 13:59:56
【问题描述】:
我想保留一张表作为历史记录并用一个空表替换它。如何通过 Management Studio 做到这一点?
【问题讨论】:
标签: sql sql-server-2008 ssms
我想保留一张表作为历史记录并用一个空表替换它。如何通过 Management Studio 做到这一点?
【问题讨论】:
标签: sql sql-server-2008 ssms
将您的表格复制到要存档的表格中:
SELECT * INTO ArchiveTable FROM MyTable
删除表格中的所有条目:
DELETE * FROM MyTable
【讨论】:
周围没有 sql server 可以测试,但我认为它只是:
insert into newtable select * from oldtable;
【讨论】:
select * into x_history from your_table_here;
truncate table your_table_here;
【讨论】:
您可以使用 RAW SQL:
INSERT INTO DEST_TABLE (Field1, Field2)
SELECT Source_Field1, Source_Field2
FROM SOURCE_TABLE
或者使用向导:
然后执行:
TRUNCATE TABLE SOURCE_TABLE
【讨论】:
试试这个单个命令来删除和插入数据:
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
输出:
(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)
【讨论】:
这将起作用:
select * into DestinationDatabase.dbo.[TableName1] from (
Select * from sourceDatabase.dbo.[TableName1])Temp
【讨论】: