The BACKUP DATABASE statement cannot be made to use variables directly. You must build it as dynamic SQL and then execute it.
Sad but true. They didn't make it easy on us.
--Jeff Moden
RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row. First step towards the paradigm shift of writing Set Based code: ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
Change is inevitable... Change for the better is not.