我正在使用独立应用程序从SQL Server数据库中获取数据并将数据发送到API,以下是我的逻辑:
BETWEEN
子句查询记录。所以我每次都会得到新的记录。我的代码:
SELECT *
FROM
(SELECT
*,
ROW_NUMBER() OVER (ORDER BY logdate) AS RowNum
FROM
tabletobesynced
WHERE
logdate IS NOT NULL) AS LogTable
WHERE
LogTable.rownum BETWEEN 5000
AND (SELECT Count(*)
FROM tabletobesynced)
AND logdate IS NOT NULL
在SQL Server开始在中间而不是在末尾插入记录之前,一切都运转良好,并且很好。
例如:如果表有1到10条记录,那么当插入第11条记录时,它应该在第10条记录之后,但是不知何故该记录插入到中间某处。这些数据是从生物识别设备等第三方服务插入的。
您能指导我采取任何解决方案吗?
答案 0 :(得分:1)
这个评论太长了。
您没有指定数据如何进入表。如果要保留插入顺序,则可以使用标识列:
create table tabletobesynced (
tabletobesyncedId int identity primary key,
. . .
);
然后,当您使用order by
查询数据时,可以使用此ID:
order by tabletobesyncedId