Does it change anything if you wrap the dbname in [] in the use statement?
sp_msforeachdb 'USE [?];select db_name()'
p.s. No need for distinct, you're selecting a single constant value.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass