SA0205 : The backward compatibility views for SQL Server 2000 system tables are deprecated. Use the current SQL Server system views instead |
![]() |
Using outdated compatibility views from SQL Server 2000 system tables poses a risk of future compatibility issues, as these views will be deprecated in upcoming SQL Server releases.

Using backward compatibility views from SQL Server 2000 system tables can lead to problems as these views are scheduled for removal in future SQL Server versions. Such views offer access to metadata in a format suited for SQL Server 2000, but newer versions demand modern alternatives.
For example:
1-- Example of deprecated view usage 2SELECT * FROM sys.sysobjects;
This query relies on the backward compatibility view sys.sysobjects, which is based on SQL Server 2000 system tables. Modern SQL Server versions prioritize using updated dynamic management views (DMVs) and catalog views for better performance, security, and compliance with current features.
-
Using outdated views can cause scripts to break in future migrations to newer SQL Server versions.
-
Reliance on deprecated features can inhibit leveraging new SQL Server capabilities, affecting performance and maintainability.

Replace outdated compatibility views from SQL Server 2000 system tables with modern SQL Server system views to ensure future compatibility and enhanced performance.
Follow these steps to address the issue:
-
Identify queries using deprecated views like sys.sysobjects. Modify these queries to use current system views or dynamic management views (DMVs).
-
Consult the SQL Server System Catalog Views documentation to find equivalent views in modern SQL versions that offer similar functionality.
-
Update your queries by replacing deprecated views with their modern counterparts. For instance, replace sys.sysobjects with sys.objects.
For example:
1-- Old usage with a deprecated view 2SELECT * FROM sys.sysobjects; 3 4-- Updated usage with a modern view 5SELECT * FROM sys.objects;

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.


Deprecated Features, Bugs


SQL
1select * from sysservers 2 3select * from sys.sysservers 4select * from someTable |

Message | Line | Column | |
---|---|---|---|
1 | SA0205 : The backward compatibility views for SQL Server 2000 system tables are deprecated. Use the current SQL Server system views instead. | 1 | 14 |
2 | SA0205 : The backward compatibility views for SQL Server 2000 system tables are deprecated. Use the current SQL Server system views instead. | 3 | 18 |
