서비스 팩 1이 설치된 SQL Server 2008 64 비트 Developer Edition을 실행하고 있습니다. 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))와 같은 매크로를 사용해야합니다. 문제 없어.
하지만 당신은 예를하려고하면 :SQL Server 에이전트 - 내 job_id 가져 오기
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)
이 좋아, 이제 처음부터 : 0xE33FE637C10B3C49A6E958BB3EF06959에
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
결과 만 작업 ID 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
인 'N' "I 생각하면 (JOBID)의 NVARCHAR로 암시 적 변환을하게됩니다 ...
좋아, 나는 (JOBID)의 데이터 유형에 대해 신경 써야한다고 생각합니다.
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
결과 :.
근처의 구문이 잘못되었습니다 '('(마이크로 소프트 SQL 서버, 오류 페이지 169분의 168에 책 "SQL 서버 2008 관리"에서 (JOBID) 사용하는 예제도 있습니다 :.. 102)
지금은 완전히 혼란 스러워요 사람이 좋은 조언이나 해결책 좀 도와 주 시겠어요 도움의 모든 종류의 감사
안부 는 헬무트
을