gpt4 book ai didi

sql - MS SQL Server,多次插入

转载 作者:行者123 更新时间:2023-12-01 07:12:10 25 4
gpt4 key购买 nike

假设我编写查询:

INSERT INTO DestinationTable
(ColumnA, ColumnB, ColumnC, etc.)
SELECT FROM SourceTable
(ColumnA, ColumnB, ColumnC, etc.)

我的源表有 2200 万行。

SQL 服务器填满了我的硬盘驱动器,并出现错误。

为什么 SQL Server 不能处理我的查询?

我应该使用游标并一次插入一行吗?

PS - 它是 SQL Express 2005,但我可以尝试完整版。

更新:我还想提一下,当我在管理工作室查看时,我的源表仅占用大约 1GB 的存储空间。然而我的 25GB 可用磁盘空间不知何故被填满了?我还使用了 2 个不同的数据库 Source.mdf -> Destination.mdf,我不知道这是否有什么区别。

最佳答案

批量更新...

INSERT INTO DestinationTable
(ColumnA, ColumnB, ColumnC, etc.)
SELECT TOP 100000 ColumnA, ColumnB, ColumnC, etc.
FROM SourceTable
WHERE NOT EXISTS (SELECT *
FROM DestinationTable
WHERE DestinationTable.KeyCols = SourceTable.KeyCols)

WHILE @@ROWCOUNT <> 0
INSERT INTO DestinationTable
(ColumnA, ColumnB, ColumnC, etc.)
SELECT TOP 100000 ColumnA, ColumnB, ColumnC, etc.
FROM SourceTable
WHERE NOT EXISTS (SELECT *
FROM DestinationTable
WHERE DestinationTable.KeyCols = SourceTable.KeyCols)

如果您需要在一个 txn 等中处理检查点、日志文件管理,则有多种变体

关于sql - MS SQL Server,多次插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479166/

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