有什么东西可以让我们更快地得到否定。表中的行而不是使用count(1)。还有两种情况:
a)当我们想得到的时候。表中的行数。
b)当我们只想知道是否至少有一行时。
提前致谢。
答案 0 :(得分:2)
b)当我们只想知道是否至少有一行时。
SELECT TOP 1 myField
FROM myTable [WHERE .....]
答案 1 :(得分:2)
A) 您可以从系统表中获取表行计数,例如,根据Uri Dimant的blog post here。
b)中 我总是使用EXISTS:
IF EXISTS(SELECT * FROM YourTable)
答案 2 :(得分:2)
要知道表格中所有行的计数而不扫描它们,您可以使用
select SUM(row_count) AS row_count
from sys.dm_db_partition_stats
where object_id = object_id('dbo.tblName')
and index_id < 2
我不确定这种方法是否有任何警告。 (可能它可能包括未提交记录的计数或不包括当前事务中所做的更改)
答案 3 :(得分:1)
b)Linq-to-Sql生成
EXISTS (SELECT NULL FROM Table....)
答案 4 :(得分:1)
a)否。
b)您可以使用exists
函数,该函数仅检查是否存在结果并且实际上没有得到结果。
答案 5 :(得分:0)