SQL Server Compact数据库PC与移动设备中的结果集差异

时间:2018-11-19 18:16:46

标签: sql sql-server-ce

有趣的问题:我有一个SQL Server CE 3.5数据库,其中包含一些数据。我使用移动设备在数据库上运行查询,并获取结果集。

这在99%的时间内都能正常工作,但有时我会在数据库中获得记录,查询将返回空结果集。

如果我从移动设备上获取相同数据库文件的副本,并使用查询分析器连接到该数据库文件,然后运行精确相同查询(如从调试器复制/粘贴),则该查询返回记录。查询本身通过引用标识键字段在两个表上执行JOIN和GROUP BY。

现在,如果我通过一系列操作进行克隆,则涉及的记录相同:

INSERT INTO MyTable (EntireFieldListExceptForIDKey)
    SELECT 
        (EntireFieldListExceptForIDKey) 
    FROM 
        MyTable 
    WHERE 
        IDKey = Original

查询现在可以在移动设备上的克隆记录上正确组合结果集。

任何人都可以解释一下,以及可能如何检测/克服吗?

1 个答案:

答案 0 :(得分:0)

这很可能是由于索引损坏所致,因为将文件复制到桌面和创建新表都会导致索引重建。

建议定期压缩数据库以防止这种情况-同时确保您使用的是最新的运行时二进制文件。