SQL Server 2000中的SELECT COUNT(*)是否不可靠?

SQL Server 2000中的SELECT COUNT(*)是否不可靠?,sql,sql-server,sql-server-2000,Sql,Sql Server,Sql Server 2000,我正在继承的SQL Server 2000数据库中运行以下查询: SELECT TOP 1000 * FROM tblTransactionHistory WHERE TransactionTypeID = 2 AND AccountNumber IS NULL SELECT COUNT(*) FROM tblTransactionHistory WHERE TransactionTypeID = 2 AND AccountNumber IS NULL 第一个查询返回一个空记录集。第二个查询

我正在继承的SQL Server 2000数据库中运行以下查询:

SELECT TOP 1000 *
FROM tblTransactionHistory
WHERE TransactionTypeID = 2 AND AccountNumber IS NULL

SELECT COUNT(*)
FROM tblTransactionHistory
WHERE TransactionTypeID = 2 AND AccountNumber IS NULL
第一个查询返回一个空记录集。第二个查询返回3543203的计数。我不相信伯爵。作为进一步验证,下面的查询只返回非空的帐号

SELECT
   AccountNumber,
   COUNT(*)
FROM tblTransactionHistory
WHERE TransactionTypeID = 2
GROUP BY AccountNumber

我还检查了DBCC USEROPTIONS,并验证了隔离级别设置为read committed。我以前从未在SQL Server上遇到过SELECT COUNT*问题。这是一个bug,还是我遗漏了什么?

这似乎很相关。它已在服务器2000的SP 4中修复。您使用的是哪种版本?这是预先修复的吗?你有并行或串行执行计划吗?发现任何腐败?执行计划是什么样子的?访问相同或不同的索引?Joe和Martin,谢谢您的帮助!这可能就是问题所在。我查过了,我只在service pack 2上。如果我不能像我希望的那样尽快将此迁移到SQL Server 2014,我将让运营部应用最新的service pack。谢谢