David Dyer (born 3 December 1946) is a South African cricketer. He played in 109 first-class matches between 1965 and 1982. His father, Dennis Dyer, was also an international cricketer. Dyer was captain of Transvaal during the 1970s.