Ich führe eine SQL Server 2008 64-Bit-Developer Edition mit Service Pack 1 installiert. Ich habe einen SQL Server-Agent-Job. In diesem Job möchte ich die job_id meines eigenen Jobs bekommen.
Auf MSDN (http://msdn.microsoft.com/en-us/library/ms175575(v=SQL.100).aspx) finden Sie eine Beschreibung der Verwendung von Token in Job-Schritten. Wow, großartig, genau das suche ich !! Verwenden Sie einfach (JOBID).
Seit SQL Server 2005 SP1 müssen Sie Makro wie $ (ESCAPE_NONE (JOBID)) verwenden. Kein Problem.
Aber wenn Sie versuchen, das Beispiel:SQL Server-Agent - eigene Job-ID
DECLARE @name NVARCHAR(128)
select @name = name from msdb.dbo.sysjobs where job_id = $(ESCAPE_SQUOTE(JOBID))
PRINT @name
Sie erhalten:
falsche nahe Syntax 'ESCAPE_SQUOTE'. (Microsoft SQL Server, Fehler: 102)
Ok, jetzt von Grund auf:
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
Ergebnisse in 0xE33FE637C10B3C49A6E958BB3EF06959 aber die job_id ist 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
Die "N '" I Think macht eine implizite Konvertierung in NVARCHAR der (JOBID) ...
Ok, ich denke ich muss mich um den Datentyp von (JOBID) kümmern. In dem Buch "SQL Server 2008 Administration" auf Seite 168/169 gibt es auch ein Beispiel für die Verwendung (JOBID):
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
Ergebnisse in:.
falsche Syntax nahe '(' (Microsoft SQL Server, Fehler :.. 102)
ich jetzt total verwirrt bin Könnte mit einem guten Rat oder Lösung Jede Art von Hilfe ist willkommen mir jemand helfen, bitte
mit freundlichen Grüßen Helmut