lunes, 4 de febrero de 2008

Cambio de sintaxis en los SQL Agent Tokens

A partir de SP1 los tokens incluidos en trabajos necesitan macros de escape. Si intentáis lanzar el trabajo que incluya tokens aparece´ra el siguiente error :


The job step contains one or more tokens. For SQL Server 2005 Service Pack 1 or later versions, all job steps with tokens must be updated with a macro before the job can run.


En el KB 915845 tenéis más detalles

Así pues, en vez de $(A-MSG) vendría a ser algo como $(ESCAPE_NONE(A-MSG)

Otroo ejemplo; por ejemplo utilizáis

SET @err =REPLACE("$(A-MSG)", '''','')

Debería ser cambiado a

SET @err ='$(ESCAPE_SQUOTE(A-MSG))'

Para compensar en parte el engorro de este cambio Microsoft facilita un sp (sp_AddEscapeNoneToJobStepTokens )que automáticamente adapta los trabajos existentes a la nueva sintaxis. Como su nombre indica, sólo añada el macro de Escape_None, ojo

El script lo tenéis hacia el final en el KB arriba indicado

No hay comentarios: