我正在为一个小项目缩减数据库。我听说将表减少到只有 1000 行的最有效方法是将这 1000 行复制到新表中删除旧表并重命名新表。
有人可以让我知道这是否正确以及大致如何做吗?
我知道如何选择前 1000 个,但不知道如何使用临时表等删除和创建表。
INSERT INTO NEW_TABLE
SELECT TOP 1000 * FROM OLD_TABLE
DROP TABLE OLD_TABLE
您可以运行它来创建新表:
SELECT TOP 1000 * INTO NewTable FROM OldTable
USING SELECT INTO 将创建一个新表。这种方法的缺点是您丢失了桌子上的钥匙。
或者,如果表存在,请使用
INSERT INTO NewTable SELECT * FROM OldTable
但是,如果您有一个 Identity 字段,这将不起作用——您需要指定列名
INSERT INTO NewTable (Field1, Field2,...) SELECT Field1, Field2...
如您所见,这实际上取决于您的情况。
要删除一个表,这很容易:
DROP TABLE OldTable
祝你好运。