0

我有成千上万的独特行分布在同一个数据库的 12 个表中。它们都具有相同的架构/列。有没有一种相对简单的方法可以将所有单独的表格组合成一张表格?

我尝试将表导入单个表,但鉴于这是一个巨大的文件/行大小,SQL Server 让我等待很长时间,就好像我从平面文件导入一样。必须有一个更简单/更快的方法,不是吗?

4

2 回答 2

1

您没有提供有关您的表结构的太多信息,但您可能只需从一个选择中执行一个普通的旧插入,如下所示。该示例将获取所有不存在 Table2 和 Table3 的记录,并将它们插入到 Table1 中。您可以这样做将所有 12 个表中的所有内容合并到一个表中。

INSERT INTO Table1
SELECT * FROM Table2
WHERE SomeUniqueKey
NOT IN (SELECT SomeUniqueKey FROM Table1)
UNION
SELECT * FROM Table3
WHERE SomeUniqueKey
NOT IN (SELECT SomeUniqueKey FROM Table1)
--...
于 2013-07-11T18:38:47.797 回答
1

照吉姆说的做,但首先:

1) 删除(或禁用)目标表中的所有索引。

2)从每个表中插入行,一次一个表。

3) 在每张表追加后提交事务,否则会在可能回滚的情况下占用大量磁盘空间。

4) 完成后重新启用或重新创建索引。

如果存在重复键的可能性,您可能需要在键字段上保留索引并使用 NOT EXISTS 子句来阻止添加重复记录。

于 2013-07-11T18:58:10.787 回答