gpt4 book ai didi

sql - 从一个表批量插入到服务器上的另一个表

转载 作者:太空狗 更新时间:2023-10-30 01:55:17 25 4
gpt4 key购买 nike

我必须将一堆数据从一个数据库表复制到另一个数据库表中。我不能使用 SELECT ... INTO 因为其中一列是标识列。此外,我还需要对架构进行一些更改。我能够使用导出数据向导创建一个 SSIS 包,然后我在 Visual Studio 2005 中对其进行编辑以进行所需的更改等等。它肯定比 INSERT INTO 快,但将数据下载到另一台计算机只是为了再次上传回来对我来说似乎很愚蠢。 (假设我是正确的,那就是 SSIS 包正在做的事情)。是否有直接在服务器上运行的 BULK INSERT 等效项,允许保留标识值并从表中提取数据? (据我所知,BULK INSERT 只能从文件中提取数据)

编辑:我确实知道 IDENTITY_INSERT,但因为涉及大量数据,INSERT INTO ... SELECT 有点慢。 SSIS/BULK INSERT 将数据转储到表中,而不考虑索引和日志记录等等,因此速度更快。 (当然,一旦表被填充就在表上创建聚簇索引并不快,但它仍然比我第一次尝试的 INSERT INTO...SELECT 快)

编辑 2:架构更改包括(但不限于)以下内容:1. 将一个表拆分为两个新表。将来每个都会有自己的 IDENTITY 列,但对于迁移,我认为使用原始表中的标识作为两个新表的标识是最简单的。一旦迁移结束,其中一个表将与另一个表建立一对多关系。2. 将列从一个表移动到另一个表。3. 删除一些仅一对一交叉引用的交叉引用表。相反,引用将是两个表之一中的外键。4. 将使用默认值创建一些新列。5. 有些表根本没有改变,但由于“将其全部放入新数据库”的请求,我不得不将它们复制过来。

最佳答案

我想您可能对 Identity Insert 感兴趣

关于sql - 从一个表批量插入到服务器上的另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com