• From MS SQL Server help. Also see p 124 of ANSI92 SQL standard.

    Okay, now I want to see a reference where they state that COUNT(1) is better or preferred...

    Syntax

    COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )

    Arguments

    ALL

    Applies the aggregate function to all values. ALL is the default.

    DISTINCT

    Specifies that COUNT returns the number of unique nonnull values.

    expression

    Is an expression of any type except text, image, or ntext. Aggregate functions and subqueries are not permitted.

    *

    Specifies that all rows should be counted to return the total number of rows in a table. COUNT(*) takes no parameters and cannot be used with DISTINCT. COUNT(*) does not require an expression parameter because, by definition, it does not use information about any particular column. COUNT(*) returns the number of rows in a specified table without getting rid of duplicates. It counts each row separately. This includes rows that contain null values.