对 SQL 服务器中的行块执行操作,其中标识列的类型为 nvarchar

Performing operations on chunks of rows in SQL Server where the identifying column is of type nvarchar

我希望对 SQL Server 2014 中的潜在大数据集执行一些操作。我想分块进行(比如,一次约 1000 行),但这里遇到了问题就是table的identity列是nvarchar类型(存储一个UUID)。

将数据分成 ID 为整数的块是非常简单的,但我在这个问题上摸不着头脑。有干净的方法吗?

只需将 INT 列添加到您的 SELECT 中,如下所示:

;WITH CTE AS
(
    SELECT
        (your-usual-list-of-columns),
        RowNum = ROW_NUMBER() OVER (ORDER BY -some-column-here-)
    FROM 
        dbo.YourTable
)
SELECT 
    (your-usual-list-of-columns)
FROM 
    CTE
WHERE
    RowNum BETWEEN 1001 AND 1999    --- or whatever batch you want to process