SA0140 : Reserved keyword is not in the required case |
![]() |
Inconsistent casing of reserved keywords in T-SQL can reduce code readability and maintainability.

In T-SQL code, using consistent casing for reserved keywords enhances code readability and aligns with best practices for writing clear and maintainable SQL scripts.
For example:
1-- Example of inconsistent casing 2Select * from Employees where employee_id = 1;
In the example above, the variations in keyword casing can make the SQL code harder to read and may lead to confusion during maintenance or code reviews. Following a consistent casing style can help in standardizing codebases, especially in collaborative environments.
-
Inconsistent casing may lead to misunderstandings among team members about coding standards.
-
It can contribute to difficulties in maintaining or refactoring code over time.
-
Standardizing keyword casing improves the overall readability of SQL scripts, facilitating better communication among developers.

Ensure that reserved keywords in your T-SQL code are consistently cased to improve readability and maintainability.
Follow these steps to address the issue:
-
Review your T-SQL code to identify any reserved keywords with inconsistent casing. Reserved keywords include terms like SELECT, FROM, and WHERE.
-
Determine the casing convention you want to apply, such as all uppercase or all lowercase, to maintain consistency across your codebase.
-
Update the reserved keywords in your script to conform to the chosen casing style. You can manually change the keyword case or use a tool or script to automate the process.
For example:
1-- Example of corrected query with consistent casing 2SELECT * FROM Employees WHERE employee_id = 1;

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

Name | Description | Default Value |
---|---|---|
RequiredCase |
The parameter specifies the required case of the reserved keywords. |
UPPERCASE |

The rule does not need Analysis Context or SQL Connection.


Naming Rules

There is no additional info for this rule.

SQL
1CREATE TABLE Test.Greeting 2( 3GreetingId INT identity (1,1) PRIMARY KEY, 4Message nvarchar(255) NOT NULL, 5) 6 7INSERT INTO Test.Greeting (Message) 8SELECT 'Hello!' 9UNION ALL 10SELECT 'Hi!' 11UNION ALL 12SELECT 'Hello, world!' 13 14insert into Test.Greeting (Message) 15values ('How do yo do?'), 16 ('Good morning!'), 17 ('Good night!') 18 19DELETE Test.Greeting wherE GreetingId = 3 20 21SELECT * FROM Test.Greeting g 22where 23g.Message like 'Hello%' 24 25drop TABLE Test.Greeting |

SQL
1CREATE TABLE Test.Greeting 2( 3GreetingId INT IDENTITY (1,1) PRIMARY KEY, 4Message nvarchar(255) NOT NULL, 5) 6 7INSERT INTO Test.Greeting (Message) 8SELECT 'Hello!' 9UNION ALL 10SELECT 'Hi!' 11UNION ALL 12SELECT 'Hello, world!' 13 14INSERT INTO Test.Greeting (Message) 15VALUES ('How do yo do?'), 16 ('Good morning!'), 17 ('Good night!') 18 19DELETE Test.Greeting WHERE GreetingId = 3 20 21SELECT * FROM Test.Greeting g 22WHERE 23g.Message LIKE 'Hello%' 24 25DROP TABLE Test.Greeting |

Message | Line | Column | |
---|---|---|---|
1 | SA0140 : Reserved keyword is not in the required case. | 3 | 15 |
2 | SA0140 : Reserved keyword is not in the required case. | 14 | 0 |
3 | SA0140 : Reserved keyword is not in the required case. | 14 | 7 |
4 | SA0140 : Reserved keyword is not in the required case. | 15 | 0 |
5 | SA0140 : Reserved keyword is not in the required case. | 19 | 22 |
6 | SA0140 : Reserved keyword is not in the required case. | 22 | 0 |
7 | SA0140 : Reserved keyword is not in the required case. | 23 | 10 |
8 | SA0140 : Reserved keyword is not in the required case. | 25 | 0 |
