This isn't completely my idea, so I can't take credit for it. I got it from another poster on this or another site. But I happen to agree with them. And that's I would use the National Guard to protect the schools. We are already paying them.
In addition to that, A lot of the opposition to having someone in the schools i.e. law enforcement or military is that some parents feel their kids will be scarred for lack of a better term if the kids feel like they are spending all day in a prison. They think (and at least partly true) that the kids may feel the person is there to control them as opposed to protecting them. I can see that fear, and I can see some kids viewing it that way. So simply don't put them in Uniform. Let them carry concealed. But them in standard teacher attire. In fact, while they are at it, giving them a little training and let them fill in as substitutes. All schools need substitutes. You could even setup programs that allow active duty military personnel that are transitioning out of active duty fill these roles. It might help them transition back to civilian life. Some of them might even decide to use their GI bill to get their teaching degrees, or follow up with jobs in law enforcement.
Bottom line, there are ways to accomplish putting a deterrent in the schools, without costing a ton of new money and without alienating the students.