• 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