开发者

How to execute two commands at the same time in SQL Server 2008

How I can execute two commands at the same time in SQL Server?

I want to get a row count of a table and some row according to the row count. For example I want to get row count of a table and assuming I want to get last 50 rows on a single pag开发者_JS百科e.

How can I do this?


EDIT 1):

Consider that I first get count and it return to me 100 and I want to get 80 to 100 recordsin this point another tansaction may delete 70 to 100 records and I can not get appropriate records


Is your requirement to be efficient, or to execute a single command? These do not necessarily result in the same thing. For a good discussion on implementing efficient paging, see this article and this follow-up discussion. Don't re-invent the wheel, and don't assume that a single command that handles both is necessarily going to be more efficient than any other solution.


An inline count my be evaluated many times or may give different results. A separate CROSS JOIN approach will give different results at some point

See for why with repro script: can I get count() and rows from one sql query in sql server?

;WITH aCTE AS
(
    SELECT
       *,
       COUNT(*) OVER () AS TotalRows,
       ROW_NUMBER OVER (ORDER BY SomeLatest DESC) AS rn
    FROM
       MyTable
) foo
SELECT
   *
FROM
   foo
WHERE
   rn <= 50


select * from tableName1 where column1=(select count(*) from tableName2)


If I understand correctly you want a query that do the count of all record in the table and at the same time get only 50 row. You can do that with something like this:

Select Top 50 Column1, column2, (Select count(ID) from table1) as total from Table1

Personally I would prefer to execute two queries. One for the count and one for the top 50 rows (much more efficient imo)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜