通过删除并插入新表来保留表中的前1000行?

问题描述 投票:1回答:2

我正在为一个小项目缩减数据库。我听说将表缩减到仅1000行的最有效方法是将这1000行复制到新表中,然后删除旧表并重命名新表。

有人可以让我知道这是否正确,大致如何做吗?

我知道如何选择前1000名,但不知道如何通过使用临时表等来删除和创建表。

sql ssms
2个回答
1
投票
INSERT INTO NEW_TABLE
SELECT TOP 1000 * FROM OLD_TABLE

DROP TABLE OLD_TABLE

0
投票

您可以运行它来创建新表:

SELECT TOP 1000 * INTO NewTable FROM OldTable

使用SELECT INTO将创建一个新表。这种方法的缺点是您会丢失桌上的钥匙。

或者,如果该表存在,则使用

INSERT INTO NewTable SELECT * FROM OldTable

但是,如果您有一个Identity字段,则将不起作用-您需要指定列名

INSERT INTO NewTable (Field1, Field2,...) SELECT Field1, Field2...

如您所见,这实际上取决于您的情况。

要放一张桌子,很简单:

DROP TABLE OldTable

祝你好运。>>

© www.soinside.com 2019 - 2024. All rights reserved.