SQL
- Adding not null column without default value
Reports attempts to create NOT NULL columns without DEFAULT values.
- Aggregate-related problems
Reports invalid usages of SQL aggregate functions.
- Ambiguous reference
Reports columns that have identical names but belong to different tables.
- Auto-increment duplicate
Reports tables that contain two columns with an automatic increment.
- Check using clause columns
Reports columns in the USING clause that does not exist in both tables.
- Column is shadowed by alias
Reports SELECT aliases with names that match column names in the FROM clause.
- Column should be in group by clause
Reports columns that are not in the GROUP BY clause or inside an aggregate function call.
- Constant condition
Reports conditions in WHERE or JOIN clauses that are always TRUE or always FALSE.
- Constant expression
Reports conditions and expressions that are always true, false or null.
- Current console schema introspected
Reports schemas and databases in the current session that are not introspected.
- Delete or update statement without where clauses
Reports usages of DELETE or UPDATE statements without WHERE clauses.
- Deprecated type
Reports usages of types that are deprecated and might disappear in future versions of DBMS.
- Duplicating column name in SELECT
Reports duplicated names of column aliases in SELECT lists.
- Each derived table should have alias
Reports derived tables without aliases.
- Excessive JOIN count
Reports queries with excessive number of JOINS.
- Function signature
Reports signature issues for built-in functions.
- Identifier should be quoted
Reports situations when you use SQL reserved keywords as identifier names in your query.
- Ill-formed date/time literals
Reports errors in date and time literals.
- Illegal cursor state
Reports illegal cursor states inside SQL routines.
- Implicit string truncation
Reports variables that exceed the defined length in characters.
- Index is dependent on column
Reports cases when you try to drop columns from indexed tables.
- Insert NULL into NOT NULL column
Reports cases when you insert NULL values into columns that accept only NOT NULL values.
- Insertion into generated columns
Reports INSERT statements that assign values to generated columns.
- Misleading references
Reports ambiguous references in SQL code.
- Missing column aliases
Reports queries without explicit aliases in output expressions (for example, in the SELECT statement).
- Missing return statement
Reports functions that have no RETURN statements.
- Multiple row limiting/offset clauses in queries
Reports usages of multiple row limiting clauses in a single query.
- Named arguments should be used
Reports arguments that are used without names in routine calls.
- No data sources configured
Reports the absence of data sources in the Database tool window (View | Tool Windows | Database).
- Null comparison
Reports comparisons with NULL that can be replaced with IS NULL or IS NOT NULL operators.
- Redundant ELSE NULL clause
Reports redundant ELSE NULL clauses.
- Redundant alias expressions
Reports alias expressions that duplicate names of columns in tables and might be redundant.
- Redundant code in COALESCE call
Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions.
- Redundant ordering direction
Reports redundant ordering directions like ASC and DESC in ORDER BY clauses.
- Redundant row limiting in queries
Reports redundant row limiting clauses like FETCH and LIMIT in queries.
- SQL dialect detection
Reports situations when a dialect is not assigned to an SQL file.
- SQL source modification detection
Reports situations when source code of a database object has been changed.
- Statement with side effects
Reports statements that might lead to modification of a database during a read-only connection.
- Suspicious code in triggers
Reports incorrect usages of transition table variables in triggers.
- Types compatibility
Reports type-related errors.
- Unicode usage in SQL
Reports string literals that use national characters without the N prefix.
- Unreachable code
Reports unreachable statements inside SQL routines.
- Unresolved reference
Reports unresolved SQL references.
- Unsafe 'join' clause in 'delete' statement
Reports missing conditional checks for statements that might modify the whole database.
- Unused common table expression
Reports unused common table expressions (CTE) inside the query.
- Unused subquery item
Reports columns, aliases, and other subquery items that are not referenced in the outer query expression.
- Unused variable
Reports unused arguments, variables, or parameters.
- Usages of GOTO statements
Reports usages of backward GOTO statements and GOTO statements used to exit a loop.
- Use of transaction management statements in triggers
Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies.
- Using CASE instead of COALESCE function and vice versa
Reports situations when CASE and COALESCE calls are interchangeable.
- Using CASE instead of conditional function and vice versa
Reports situations when CASE and IF are interchangeable.
- Using of named and positional arguments
Reports calls in which positional arguments go after the named ones.
- VALUES clause cardinality
Reports situations when a number of parameters in VALUES does not match a number of columns in a target table.