SQL SERVER Compatibility Views


Although you were allowed to see data in the system tables in versions of SQL Server before 2005, you weren't encouraged to do this. Nevertheless, many people used system tables for developing their own troubleshooting and reporting tools and techniques, providing  result sets that aren't available using the supplied system procedures.

Some of the compatibility views have names that might be quite familiar to you, such as sysobjects, sysindexes, sysusers, and sysdatabases. Others, like sysmembers and sysmessages, might be less familiar. For compatibility reasons, the views in SQL Server 2008 have the same names as their SQL Server 2000 counterparts, as well as the same column names, which means that any code that uses the SQL Server 2000 system tables won’t break. However, when you select from these views, you are not guaranteed to get exactly the same results that you get from the corresponding tables in SQL Server 2000. In addition, the compatibility views do not contain any metadata related to new SQL Server 2005 or 2008 features, such as  partitioning .
SQL Server 2005 and 2008 also provide compatibility views for the SQL Server 2000 pseudotables, such as sysprocesses and syscacheobjects. Pseudotables are tables that are not based on data stored on disk but are built as needed from internal structures and can be queried exactly as if they are tables. SQL Server 2005 replaced these pseudotables with Dynamic Management Objects. Note that there is not always a one-to-one correspondence between the SQL Server 2000 pseudotables and the SQL Server 2005 and SQL Server 2008 Dynamic Management Objects.
For example, for SQL Server 2008 to retrieve all the  information available in sysprocesses, you must access three Dynamic Management Objects: sys.dm_exec_connections, sys.dm_exec_sessions, and  sys.dm_exec_requests