Агент SQL Server - получить мой собственный job_id

Я использую 64-разрядную версию SQL Server 2008 Developer Edition с установленным пакетом обновления 1. У меня есть задание агента SQL Server. В рамках этой работы я хочу получить job_id моей собственной работы.
В MSDN ( http://msdn.microsoft.com/en-us/library/ms175575 (v = SQL.100) .aspx ) вы можете найти описание использования токенов на этапах задания. Вау, отлично, вот что я ищу !! Просто используйте (JOBID).
Начиная с SQL Server 2005 SP1, вы должны использовать макрос, например $ (ESCAPE_NONE (JOBID)). Нет проблем.
Но если вы попробуете пример:

DECLARE @name NVARCHAR(128)
select @name =  name from msdb.dbo.sysjobs where job_id = $(ESCAPE_SQUOTE(JOBID))
PRINT @name

, вы получите:
Неправильный синтаксис рядом с "ESCAPE_SQUOTE". (Microsoft SQL Server, ошибка: 102)
Хорошо, теперь с нуля:

PRINT N'$(ESCAPE_SQUOTE(JOBID))'  

приводит к 0xE33FE637C10B3C49A6E958BB3EF06959, но job_id 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
"N", как мне кажется, выполняет неявное преобразование в NVARCHAR (JOBID) ...
Хорошо, я думаю, мне нужно заботиться о типе данных (JOBID). В книге «Администрирование SQL Server 2008» на странице 168/169 также есть пример использования (JOBID):

declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))

приводит к:
Неправильный синтаксис рядом с '('. (Microsoft SQL Server, Ошибка: 102)
Я полностью сбит с толку. Могли бы, пожалуйста, кто-нибудь помочь мне хорошим советом или решением. Мы приветствуем любую помощь.

С уважением Гельмут

6
задан Filip De Vos 3 May 2012 в 14:16
поделиться