Sanchez dislocated his right shoulder in Friday's game against the Cincinnati Reds. He was batting .289 with three homers and 23 RBI in 60 games this season for San Francisco.
Hall, meanwhile, was signed by the Giants to take his roster spot.
Hall, 31, had been the starting second baseman for the Astros before losing his job to Jeff Keppinger this season.
He hit .224 with two homers, seven doubles and 13 RBI in 46 games with Houston.