Bir SQL Server 2008 64 bit Developer Edition yüklü Service Pack 1 çalıştırıyorum. SQL Server Agent işim var. Bu işin içinde kendi işimin job_id'ini almak istiyorum.
MSDN (http://msdn.microsoft.com/en-us/library/ms175575(v=SQL.100).aspx) üzerinde, iş adımlarında belirteçleri kullanmanın açıklamasını bulabilirsiniz. Vay, harika, bende aradığım şey bu! Sadece kullanın (JOBID).
SQL Server 2005 SP1'den beri makroyu $ (ESCAPE_NONE (JOBID)) gibi kullanmak zorundasınız. Sorun değil.
Ama örnek denerseniz:SQL Server Agent - kendi job_id'i alın
DECLARE @name NVARCHAR(128)
select @name = name from msdb.dbo.sysjobs where job_id = $(ESCAPE_SQUOTE(JOBID))
PRINT @name
elde edersiniz:
yanlış sözdizimi yakın 'ESCAPE_SQUOTE'. (Microsoft SQL Server, Hata: 102)
Tamam, şimdi sıfırdan: 0xE33FE637C10B3C49A6E958BB3EF06959 içinde
PRINT N'$(ESCAPE_SQUOTE(JOBID))'
sonuçları ancak job_id 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
olan "N"" Ben (JOBID) 'in NVARCHAR'ına örtük bir dönüşüm sağladığını düşünüyorum ...
Tamam, sanırım (JOBID) veri türünü önemsemeliyim.
declare @jobid binary(16)
SELECT @jobid =Convert(Uniqueidentifier,$(ESCAPE_NONE(JOBID)))
Sonuçlar:.
yanlış sözdizimi yakın '(' (Microsoft SQL Server, Hata sayfasında 168/169 tarihinde kitabında "SQL Server 2008 Yönetim" in (JOBID) kullanımına bir örnek de var :.. 102)
Şimdi tamamen kafam karıştı biri iyi tavsiye veya solüsyon ile bana yardımcı memnun Could yardım her türlü takdir
Saygılarımızla Helmut