prueba con esto:
Código SQL:
Ver originalSET @QUERY = 'SELECT
SUBSTRING(nombre,0, CHARINDEX('+CHAR(39)+ CHAR(44)+CHAR(39)+',nombre)),
SUBSTRING(NOMBRE ,CHARINDEX('+CHAR(39)+CHAR(47)+CHAR(39)+',NOMBRE )+1,LEN(nombre)),
SUBSTRING(nombre,CHARINDEX(' +CHAR(39)+CHAR(44)+CHAR(39)+',nombre)+1,((LEN(NOMBRE))-(LEN(SUBSTRING(NOMBRE ,CHARINDEX('+CHAR(39)+CHAR(47)+CHAR(39)+', NOMBRE)+1,LEN(NOMBRE))))-(LEN(SUBSTRING(NOMBRE ,0, CHARINDEX('+CHAR(39)+CHAR(44)+CHAR(39)+',NOMBRE ))) )-2) ),
GB.RFCH,
GB.TRACVE,
PRD.PRGSUB,
PRD.UNIRES,
PRD.PARTID,
PRD.CODIGO,
PRD.HORAS,
PRD.NUMPTO,
(TRAIMP),
TRATIP,
replace(GB.TRADAT ,0 ,'''') as DATITO,
GB.CENRES
FROM '+@GBL+' GB INNER JOIN '+@AÑOQUIN+' PRD ON GB.RFCH = PRD.RFCH
WHERE GB.QNAPROC ='+@QUINCENA+'
AND GB.IDDESNOM >=11 AND GB.IDDESNOM <= 13'
Como recomendacion al usar queries dinamicos recuerda que las sentencias que llevan ' se sustituyen por '' para que te aparezca la ' dentro de tu cadena si no lo haces lo tomara como un escape de cadean ;)