我有一个请求的结果,它给了我数千行,我想将它拆分为每个 10k 行的小临时表,增量数从 1 到 10 000。假设我有一个 25 000 的大查询行,我想要的是将它分成 2 个 10k 的表和第三个 5k 的表。当然,我不知道我将不得不分成的确切页数。
我对所有行的第一个查询被命名为 [#DECLARATION] 并且有一个数字 NumeroDeclaration,第 1 页为 0,第 2 页为 1,等等。到 9。每 10 000 行它从 0 增加到 10 000。
此时我的请求如下所示:
--Page 1
SELECT * INTO [#PAGE1] FROM [#DECLARATION] WHERE NumeroDeclaration =0 ORDER BY NumeroTransaction;
--Numerotation
WITH upd AS (SELECT NumeroDeclaration, ROW_NUMBER() OVER (ORDER BY NumeroTransaction) AS Numtemp FROM [#PAGE1])
UPDATE upd SET NumeroDeclaration = Numtemp
--Page 2
SELECT * INTO [#PAGE2] FROM [#DECLARATION] WHERE NumeroDeclaration =1 ORDER BY NumeroTransaction;
--Numerotation
WITH upd AS (SELECT NumeroDeclaration, ROW_NUMBER() OVER (ORDER BY NumeroTransaction) AS Numtemp FROM [#PAGE2])
UPDATE upd SET NumeroDeclaration = Numtemp
--Page 3
--etc.... to Page 10...
我必须这样做超过 10 页,并且它有效,但是还有另一种更短/更经典的方法吗?
我正在使用 SQL SERVER 2008 感谢阅读