This just looks so odd to me:
delete from GearsDev.dbo.Products from GearsDev.dbo.Products as C inner join #Common as M on M.item = C.ItemNumber
You can constrain the set of records you want to delete by more than one table. The second from just generates the alias C for the table you delete from, joins it with the table #common and deletes only records which have a record in talbe #common.
from
C
#common