BUG: DOC: sysalternates View Does Not Exist in SQL Server 2000 (294353)



The information in this article applies to:

  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q294353
BUG #: 354163 (SHILOH_BUGS)

SYMPTOMS

In SQL Server 2000 Books Online (BOL), the topic "Level 3: Updating to Improve Earlier Functionality" incorrectly makes the following statement regarding the dbo-owned sysalternates view:

"Backward Compatibility Level 3 consists of items that were supported in SQL Server version 6.5 but are supported in SQL Server 2000 (and SQL Server 7.0) for backward compatibility only.

Any item included in this category is fully supported, but may be removed or unsupported in a future release. It is recommended that, as time allows, the backward compatible item be replaced with the recommended item. SQL Server 2000 provides features that accomplish these tasks more efficiently and have ongoing support."

By design, the dbo-owned sysalternates view has been removed from SQL Server 2000.

WORKAROUND

All references to the system table sysalternates should be removed and changed accordingly. Queries that use either sysalternates.suid or sysalternates.altsuid in a SQL Server 6.x or SQL Server 7.0 environment can be replaced by sysusers.isaliased in the SQL Server 2000 environment.

You can run the following code to query a SQL Server 6.x server in order to display the login names of all logins which are aliased to some other login:
Use DB_Name
GO
SELECT suser_name(suid) AS name
FROM sysalternates
GO
				
From your SQL Server 7.0 or SQL Server 2000 server, the login info will be stored in the sysusers table for each database. Therefore, you need to use a security identifier (SID) rather than a server user ID (SUID):
Use DB_Name
GO
SELECT suser_sname(sid) AS name
FROM sysusers
WHERE isaliased = 1
GO
				

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

The dbo-owned sysalternates view is an object that is used in SQL Server 6.5. SQL Server 7.0 provides backward compatibility for this object. In SQL Server 2000, however, this object no longer exists.

For additional information on the use of sysusers, see the "Query Performance (Level 3)" topic in SQL Server Books Online.

Modification Type:MajorLast Reviewed:10/3/2003
Keywords:kbbug kbFAQ kbpending kbProgramming kbUpgrade KB294353