有趣的问题:我有一个SQL Server CE 3.5数据库,其中包含一些数据。我使用移动设备在数据库上运行查询,并获取结果集。
这在99%的时间内都能正常工作,但有时我会在数据库中获得记录,查询将返回空结果集。
如果我从移动设备上获取相同数据库文件的副本,并使用查询分析器连接到该数据库文件,然后运行精确相同查询(如从调试器复制/粘贴),则该查询返回记录。查询本身通过引用标识键字段在两个表上执行JOIN和GROUP BY。
现在,如果我通过一系列操作进行克隆,则涉及的记录相同:
INSERT INTO MyTable (EntireFieldListExceptForIDKey)
SELECT
(EntireFieldListExceptForIDKey)
FROM
MyTable
WHERE
IDKey = Original
查询现在可以在移动设备上的克隆记录上正确组合结果集。
任何人都可以解释一下,以及可能如何检测/克服吗?
答案 0 :(得分:0)
这很可能是由于索引损坏所致,因为将文件复制到桌面和创建新表都会导致索引重建。
建议定期压缩数据库以防止这种情况-同时确保您使用的是最新的运行时二进制文件。