A more detailed description of the comparison: http://codebetter.com/blogs/karlseguin/archive/2006/04/17/142964.aspx Walter, I read the article twice. I think you've been influenced by the author's opinion...
It's a step in the right direction, but I consider the above code overly complicated for the common task we are trying to accomplish. Why did the SQL team decide not to implement the oft-begged for MySQL LIMIT keyword? Even if LIMIT simply abstracts away the above code, it's embarrassingly simple:
If you need to page results, MySQL's LIMIT keyword continues to be more handy than anything the .NET or SQL teams have managed to do. These statements "overly complicated" are easy to make, and not so easy to back up. The argument made by the author is easily counter-argued by the question of why there's no direct access to the variable being used for LIMIT.
Additionally, unless I misread,
LIMIT also requires numeric constants. If that's true, one can't use stored procedures to provide integer variables. One of the comments on that blog post rightly pointed out the limits (no pun intended) of this.
At the risk of repetition, LIMIT is nice - but having access to a ROWNUMBER function that I can use for anything I want (inclding paging) is also nice. After what I've seen....I'd rather have what's in SQL 2005 than what's in MYSql for this.