SA0198 : Usage of deprecated GROUP BY ALL syntax encountered |
![]() |
The topic describes the SA0198 analysis rule.

Usage of deprecated GROUP BY ALL syntax encountered

The rule checks and reports usages of the deprecated GROUP BY ALL syntax.
The GROUP BY ALL clause specifies to include all groups in the results regardless of whether they meet the search criteria in the WHERE clause. Groups that don’t meet the search criteria have NULL for the aggregation.
This syntax is deprecated and is provided for backward compatibility only. It will be removed in a future version of SQL Server.
The GROUP BY ALL syntax is not supported in queries that access remote tables if there is also a WHERE clause in the query and will fail on columns that have the FILESTREAM attribute.

Avoid using this syntax in new development work, and plan to modify applications that currently use this syntax.

The rule has a Batch scope and is applied only on the SQL script.

Rule has no parameters.

The rule does not need Analysis Context or SQL Connection.


Design Rules, Deprecated Features, Bugs

There is no additional info for this rule.

SQL
1-- Deprecated GROUP BY ALL clause used 2SELECT 3 ColumnA , 4 COUNT(DISTINCT ColumnB) 5FROM T 6WHERE ColumnC > 1000 7GROUP BY ALL 8 ColumnA 9 10-- The statement is equivalent as the above 11SELECT ColumnA , 12 COUNT(DISTINCT CASE WHEN ColumnC > 1000 THEN ColumnB END) 13FROM T 14GROUP BY 15 ColumnA |

Message | Line | Column | |
---|---|---|---|
1 | SA0198 : Usage of deprecated GROUP BY ALL syntax encountered. | 7 | 0 |
