【发布时间】:2016-06-08 23:28:29
【问题描述】:
如何将批次或指定数量的行从另一个表插入到另一个表中?
示例:将表 a 中的前 1000 行插入到表 b 中。 然后我想将接下来的 1000 行从表 a 插入到表中,以此类推。
一个典型的说法是:
insert into A
select top 1000 from table b
我现在如何从停止的位置将接下来的 1000 行选择到表 b 中? 从表 b 中选择前 1000 个
【问题讨论】:
-
通常这样的事情会用光标来完成。您可能希望在 select 语句中使用 TOP 和 ORDER BY。互联网上确实有数千个这样的例子。
-
@SeanLange -- 通常这种事情不会用游标来完成,游标非常慢,在使用数据库系统时永远不应该使用它们。
-
@Hogan,我知道 TOP 一直是 SQL Server 的方式,但是现在不是也支持 ANSI SQL 的 FETCH FIRST 吗?
-
@Hogan SQL Server 自 SQL Server 2012 起也支持
OFFSET X ROWS FETCH NEXT Y ROWS ONLY。
标签: sql sql-server sql-server-2008 tsql