En su propio código, usted nunca declara o fija un valor para el @holddate.
¿Está usted seguro usted ha declarado AMBAS variables como varchar (100)?
Para ayudar a ver qué se está encendiendo, quitar el comando DE RESERVA durante algún tiempo, y substituirlo por
SELECCIONAR @mystring
Entonces una vez que usted sabe cuál está en la secuencia, usted puede probar el comando de reserva. Mi conjetura es que no tiene gusto de los espacios y/o de los carácteres especiales en su formato de fecha.