SQL Server 2008の64ビットDeveloper EditionをService Pack 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))のようなマクロを使用する必要があります。問題ない。
しかし、あなたがしようとした場合の例: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)
[OK]を、今、ゼロから:0xE33FE637C10B3C49A6E958BB3EF06959で
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
結果が、JOB_IDが 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
"N '" Iであります(JOBID)のNVARCHARへの暗黙の変換を行うと思います...
いいえ、私は(JOBID)のデータ型に気を配らなければならないと思います。中
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
結果:
付近に正しくない構文 '('(Microsoft SQL Serverの、エラーページ169分の168の著書 "SQL Server 2008の管理" で(JOBID)を使用する例もあります。 :102)
私は今、完全に混乱しているヘルプのすべての種類が評価され、誰かが良いアドバイスや解決策で私を助けてもらえ
敬具 ヘルムート