The chief of Chesapeake Police Mark G Solesky said the gunman had also killed himself. Six people are dead and four others are being treated in hospital after the incident in Chesapeake.
The store in Chesapeake is now safe and will likely be closed for several days during the investigation, Officer Leo Kosinski said. The gunman had not been named as of Wednesday evening.
One shopper told a local TV station the store was busy just before the shooting on Tuesday night with people stocking up ahead of the Thanksgiving holiday in America.
Employee Briana Tyler told ABC’s Good Morning America that workers had gathered in the store’s break room as part of their regular routine ahead of their shifts.
She said: “I looked up, and my manager just opened the door and he just opened fire.” Ms Tyler said “multiple people” dropped to the floor.
“He didn’t say a word, he didn’t say anything at all,” she said. The gunman’s home has been searched. Mr Solesky did not give his name because his family had not yet been notified.
Mayor Rick W West said in a statement posted on the city’s Twitter account: “I am devastated by the senseless act of violence that took place late last night in our city. Chesapeake is a tightknit community and we are all shaken by this news.”
Joetta Jeffery told CNN she received text messages from her mother who was inside the store when the shots were fired. Her mother, Betsy Umphlett, was not injured.
“I’m crying, I’m shaking,” Ms Jeffery said. “I had just talked to her about buying turkeys for Thanksgiving, then this text came in.”
One man was seen in tears at a hospital after learning his brother was dead, and others were also in severe distress as they left a conference centre set up as a family reunification centre, The Virginian-Pilot reported.
Camille Buggs, a former Walmart employee, told the paper she went to the conference centre seeking information about her former co-workers.
“You always say you don’t think it would happen in your town, in your neighbourhood, in your store – in your favourite store – and that’s the thing that has me shocked,” Ms Buggs said.
A database that tracks every mass killing in America going back to 2006 shows this year has been especially bad. The US has now had 40 mass killings so far this year, second to the 45 that occurred for all of 2019. The database defines a mass killing as at least four people killed, not including the killer.
It marks the second high-profile shooting in the US in recent days, after five people were killed at a gay nightclub in Colorado on Saturday.
The shootings also come in a year when America was shaken by the deaths of 21 people when a gunman stormed an elementary school in Uvalde, Texas.
Tuesday’s shooting also brought back memories of another that took place at a Walmart in 2019, when a gunman police say was targeting Mexicans opened fire at a store in El Paso and killed 22 people.