Estoy ejecutando un SQL Server 2008 Edición de desarrollador de 64 bits con el Service Pack 1 instalado. Tengo un trabajo del Agente SQL Server. Dentro de este trabajo quiero obtener el job_id de mi propio trabajo.
En MSDN (http://msdn.microsoft.com/en-us/library/ms175575(v=SQL.100).aspx) puede encontrar una descripción del uso de tokens en los pasos del trabajo. Wow, genial, ¡eso es lo que estoy buscando! Solo usa (JOBID).
Desde SQL Server 2005 SP1, debe usar macro como $ (ESCAPE_NONE (JOBID)). No hay problema.
Pero si se intenta el ejemplo:Agente SQL Server - obtener mi propio job_id
DECLARE @name NVARCHAR(128)
select @name = name from msdb.dbo.sysjobs where job_id = $(ESCAPE_SQUOTE(JOBID))
PRINT @name
que se obtiene:
sintaxis incorrecta cerca de 'ESCAPE_SQUOTE'. (Microsoft SQL Server, Error: 102)
Ok, ahora desde el cero:
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
resultados en 0xE33FE637C10B3C49A6E958BB3EF06959 pero el job_id es 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
La "N '" I Creo que hace una conversión implícita a NVARCHAR del (JOBID) ...
Ok, creo que me tiene que importar el tipo de datos de (JOBID). En el libro "SQL Server 2008 Administración" en la página 168/169 también hay un ejemplo del uso (JOBID):
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
resultados en:.
sintaxis incorrecta cerca '(' (Microsoft SQL Server, error :.. 102)
estoy totalmente confundido ahora pudiera por favor alguien que me ayude con un buen consejo o una solución de cada tipo de ayuda se agradece
saludos Helmut