Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SELECT*不返回行,但SELECT Count(*)返回非零值_Sql_Sql Server_Tsql - Fatal编程技术网

Sql SELECT*不返回行,但SELECT Count(*)返回非零值

Sql SELECT*不返回行,但SELECT Count(*)返回非零值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我运行以下查询: a. select * from TABLE_TEMP 查询已成功执行,但未返回任何行。返回的数据集为空,包含0行。 此查询的执行计划可从以下网站下载: 此查询也成功执行,但它返回一些有限值 此查询的执行计划可从以下网站下载: 你能给我一些解决这个问题的建议吗 PFB屏幕截图: Count是SQL中的函数,它返回Int值,即受影响的记录数 数据库中可能存在某种损坏。在熟悉后运行DBCC CHECKDB(或DBCC CHECKTABLE)。特别是关于数据库兼容性级别的索引检

我运行以下查询:

a. select * from TABLE_TEMP
查询已成功执行,但未返回任何行。返回的数据集为空,包含0行。 此查询的执行计划可从以下网站下载:

此查询也成功执行,但它返回一些有限值 此查询的执行计划可从以下网站下载:

你能给我一些解决这个问题的建议吗

PFB屏幕截图:

Count是SQL中的函数,它返回Int值,即受影响的记录数

数据库中可能存在某种损坏。在熟悉后运行
DBCC CHECKDB
(或
DBCC CHECKTABLE
)。特别是关于数据库兼容性级别的索引检查部分,以及:

在早期版本的SQL Server中,每表、每索引行计数和页面计数的值可能会不正确。在某些情况下,这些值中的一个或多个甚至可能变为负值。在SQL Server 2005及更高版本中,始终正确维护这些值。因此,在SQLServer2005及更高版本上创建的数据库决不应包含不正确的计数;但是,升级到SQL Server 2005及更高版本的数据库可能会丢失


这正是你应该期待的行为。返回的值应为0。或者1,如果您谈论的是“受影响的行”“某个有限值”:这是0吗?否。行数大于0。屏幕截图:@Abhineet-您能捕获这些查询的实际执行计划并将XML发布到某个地方吗?同意@ta.speot.is-看起来聚集索引
PK\u airwaybills\u hist\u 3493CFA7
或NCI
Idx\u发送方参考文件
必须已损坏。您认为哪一个是正确的?Select*查询返回的是空数据集。我认为Select是一条语句,它从数据库中检索行,并允许从SQL Server中的一个或多个表中选择一个或多个行或列,这将更有帮助???行计数从不来自表元数据。它总是被计算在内。@usr我觉得你说的是正确的,但是文档中有什么支持这一点的吗?或者它只是SQL Server的更高版本中可能更改的实施细节?报价中提到的行数仅用于对计划进行成本计算时的基数估计。从不回答
COUNT(*)
查询。不确定是否有任何文档明确说明了这一点,但您可以查看OP的查询计划。它正在执行NCI扫描,并将其送入聚合运算符。没有在系统表中查找@ta.speot.is:您的查询计划证实了这一点。
b. select count(*) from TABLE_TEMP