请教SQL语句查询返回记录数的结果是否有什么不同?
要查询一个表的所有记录数,例子:方法一、declare@MyCountintselect@MyCount=count(*)from[表]查询结果@MyCount返回5万条...
要查询一个表的所有记录数, 例子:
方法一、
declare @MyCount int
select @MyCount=count(*) from [表]
查询结果 @MyCount 返回 5万条记录
方法二、
select * from [表]
set @MyCount=@@rowcount
查询结果 @MyCount 也是返回 5万条记录
请问这两种查询方法有什么不一样,如果不一样那它们的区别在哪里?会不会还有在什么情况下就不同呢? 展开
方法一、
declare @MyCount int
select @MyCount=count(*) from [表]
查询结果 @MyCount 返回 5万条记录
方法二、
select * from [表]
set @MyCount=@@rowcount
查询结果 @MyCount 也是返回 5万条记录
请问这两种查询方法有什么不一样,如果不一样那它们的区别在哪里?会不会还有在什么情况下就不同呢? 展开
3个回答
展开全部
@@ROWCOUNT是全局变量,返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。
因此一般情况下,只要能保证在select * 以后立刻select @@rowcount,两者的结果就是相等的。还是推荐用第一种,更简单,也更快(特别是对于大表)
因此一般情况下,只要能保证在select * 以后立刻select @@rowcount,两者的结果就是相等的。还是推荐用第一种,更简单,也更快(特别是对于大表)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一种是计算机统计一下,把结果发给你,就一个数。
第二种是把整个表发给你,然后在告诉给了你多少行。浪费资源。
第二种是把整个表发给你,然后在告诉给了你多少行。浪费资源。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询