use master go if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[uspEvoFixUsers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[uspEvoFixUsers] GO create proc uspEvoFixUsers( @databaseName sysname) as set nocount on IF object_id('tempdb..#tblUsers') IS NOT NULL BEGIN DROP TABLE #tblUsers END create table #tblUsers ( UserName sysname null, GroupName sysname null, LoginName sysname null, DefDBName sysname null, DefSchemaName sysname null, UserID smallint null, SID smallint null ) exec( 'insert into #tblUsers exec ' + @databaseName +'..sp_helpuser') declare @curUserName sysname DECLARE userCursor CURSOR local FOR SELECT UserName from #tblUsers where Username <> 'dbo' and username in ( select name from sys.server_principals) OPEN userCursor FETCH NEXT FROM userCursor INTO @curUserName WHILE (@@fetch_status <> -1) BEGIN exec( @databaseName +'..sp_change_users_login ''Auto_Fix'', ''' + @curUserName + '''') FETCH NEXT FROM userCursor INTO @curUserName END DEALLOCATE userCursor IF object_id('tempdb..#tblUsers') IS NOT NULL BEGIN DROP TABLE #tblUsers END set nocount off GO