Well, I goofed. I used a similarly-named stored procedure that was meant for SQL 7, as you suspected. Thanks for finding this, Luis. Here's the proc I meant to include:
USE master
GO
IF OBJECT_ID('sp_abFixUserLogins') IS NULL
EXEC('CREATE PROCEDURE sp_abFixUserLogins AS BEGIN RETURN END')
GO
ALTER PROCEDURE sp_abFixUserLogins
/* Name: sp_abFixUserLogins
*
* Purpose: Resync SQL Server logins after a database load.
*
* Source: SQLServerPerformance.com
*
* Modification History:
* 08/18/2005 VRI Created.
*
*/
AS
DECLARE @UserName nvarchar(255)
DECLARE orphanuser_cur CURSOR FOR
SELECT UserName = name
FROM sysusers
WHERE issqluser = 1
AND sid IS NOT NULL
AND sid 0x0
AND suser_sname(sid) IS NULL
AND EXISTS (SELECT *
FROM master.dbo.syslogins
WHERE name = sysusers.name)
ORDER BY name
OPEN orphanuser_cur
FETCH NEXT
FROM orphanuser_cur
INTO @UserName
WHILE (@@fetch_status = 0)
BEGIN
PRINT @UserName + ' user name being resynced'
EXEC sp_change_users_login 'Update_one', @UserName, @UserName
FETCH NEXT
FROM orphanuser_cur
INTO @UserName
END
CLOSE orphanuser_cur
DEALLOCATE orphanuser_cur
go
GO
GRANT EXEC ON sp_abFixUserLogins TO PUBLIC
GO