btw - I've reviewed the code.1 - fix the code - removed the 1st @DBName - syslogins is in master, not in each user database2 - added [] around the @Dbname references - if you have database (as I do) that start with numerics, you need that.3 - 2nd option that removes the seemingly unnecessary (?) @SQL usagedeclare @Dbname sysnamedeclare @SQl varchar(1000)Declare c Cursor forSelect Namefrom sysdatabasesOpen cFetch Next from c into @DBNameWhile @@Fetch_Status = 0 Begin Set @SQL = 'Select top 3 sl.name, Roles = Case When a.Name is null then ''Public'' Else a.Name End from [master]..syslogins sl Left Outer Join [' + @DBName + ']..sysusers su On sl.sid = su.sid Left OUter Join [' + @DBName + ']..sysmembers sm On su.uid = sm.memberuid Left Outer Join ( Select Uid, Name from [' + @DBName + ']..sysusers Where altuid = 1 Or uid < 3 ) a On sm.groupuid = a.Uid Where su.uid = ''18''' Exec (@SQL)FETCH NEXT FROM c INTO @DBNameEND close cDEALLOCATE c--btw, what aboutDeclare c Cursor forSelect Namefrom sysdatabasesOpen cFetch Next from c into @DBNameWhile @@Fetch_Status = 0 Begin exec ('Select top 3 sl.name, Roles = Case When a.Name is null then ''Public'' Else a.Name End from [master]..syslogins sl Left Outer Join [' + @DBName + ']..sysusers su On sl.sid = su.sid Left OUter Join [' + @DBName + ']..sysmembers sm On su.uid = sm.memberuid Left Outer Join ( Select Uid, Name from [' + @DBName + ']..sysusers Where altuid = 1 Or uid < 3 ) a On sm.groupuid = a.Uid Where su.uid = ''18''')FETCH NEXT FROM c INTO @DBNameEND close cDEALLOCATE c*##* *##* *##* *##* Chaos, Disorder and Panic ... my work is done here!