How did you screw up your moat? If it's through drowning, make it dry. If you've found things can cross anyway, you may need to remove the inner ramps.
What I do for moats is:
Start:
____
####
2xChannel or 1xChannel
_ _ _ __
#\/# #V##
Remove Undermine
inner inner
ramp side
_ _ _ __
#\_# #\_# <- both equally traversable (i.e. not!)
Optionally
channel
overhang
away
_ _
#\_#
Bearing in mind that drawbridges that don't set down on intervening land cannot accidentally crush anyone with the extended part of the bridge:
Down Up
_--- _ |
#\_# #\_#
...although if you've crushed people with a 1xN drawbridge, you might still be crushing them in this case (as well as flinging them around, if they're on the bridge you're raising).
Effort to make a lever-controlled bridge is, of course, Architect*materials needed (+ creation of blocks/bars, where relevent) to gather together, Mason/Carpenter/Metalworker spends time on construction itself, mechanic creating three mechanisms, mechanic constructing lever, mechanic attaching lever to bridge by other two mechanisms.
Effort to make a lever-controlled floodgate/door is Mason/Carpenter/Other for the furniture (+ creation of raw materials, as appropriate), unspecified dwarf for the emplacement, mechanisms+lever+linkage as above.
Doors default to passable (until linked to lever), floodgates default to impassable (until linked to lever and pulled). Bridges are passable by default. (Unless a non-raising one being used to cap a ramp, which is another possible entry-control method, being indestructible from below.)
Erm, I think I got all that right. Still, experiment. You know you want to.