Aracılığıyla paylaş


İş adımlar belirteçleri kullanma

SQL ServerAracısı belirteçleri kullanmanıza olanak sağlar Transact-SQLiş adım komut. Senin iş adımları yazarken simgeleri kullanarak yazılım programları yazarken değişkenleri sağlayan aynı esnekliği sağlar. İş adım komut dosyasında, bir belirteç ekledikten sonra SQL ServerAracısı iş adım tarafından yürütülmeden önce çalışma zamanında, belirteç değiştirir Transact-SQLalt sistem.

Önemli notÖnemli

İle başlayan SQL Server 2005Service Pack 1'de, SQL ServerAracısı iş adım belirteç sözdizimi değiştirildi. Sonucunda, bir çıkış makrosu şimdi iş adımda kullanılan tüm belirteçler bulunmalıdır, yoksa bu iş adımları başarısız olur. Kullanarak çıkış makroları ve güncelleştirmek senin SQL ServerAracısı iş adımlar belirteçleri kullanmak "anlayış simgelerini kullanarak" aşağıdaki bölümlerde açıklanan " SQL Server Aracısı belirteçleri ve makrolar" ve "İş adımları kullanın makrolar için güncelleştirme." Ayrıca, SQL Server 2000köşeli dışarı arama için kullanılan sözdizimi, SQL ServerAracısı iş adım belirteçler (örneğin, "[DATE]") de değişti. Şimdi simge isimleri parantez içine alın ve dolar işareti koyun ($) belirteç sözdizimi başında. Örneğin:

$(ESCAPE_macro name(DATE))

Simgeleri kullanarak anlama

Güvenlik notuGüvenlik Notu

Windows olay günlüğü üzerine yazma izinleriyle herhangi bir Windows kullanıcı tarafından aktif iş adımları erişebilirsiniz SQL ServerAgent uyarıları veya WMI uyarı. Bu bir güvenlik riski önlemek için SQL Servervarsayılan olarak devre dışı uyarıları tarafından aktive işlerde kullanılan Aracısı belirteçleri. These tokens are: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(property). Bu sürümde, belirteçlerini tüm uyardığınız için genişletilmiş unutmayın.

Bu belirteçler kullanmanız gerekiyorsa, öncelikle yalnızca Yöneticiler grubu gibi güvenilen Windows güvenlik gruplarının üyeleri bilgisayarın olay günlüğüne yazma izinleri olduğundan emin olun burada SQL Serveroturuyor. Sonra sağ SQL Server Agent nesne Gezgini'nde seçin özelliklerive Uyarı sistemi page, select için uyarılar tüm iş yanıtları belirteçleri Değiştir bu simgeleri etkinleştirmek için.

SQL ServerBasit ve etkili aracı simge değiştirme: SQL ServerAracı yerine bir dize hazır bilgi değeri belirteci. Tüm belirteçler büyük/küçük harf duyarlıdır. İş adımları, bu dikkate almak ve doğru belirteçleri kullanma veya değiştirme dizesi doğru veri türüne dönüştürmeyi teklif gerekir.

Örneğin, bir iş adımda veritabanının adını yazdırmak için aşağıdaki deyimi kullanabilirsiniz:

PRINT N'Current database name is $(ESCAPE_SQUOTE(A-DBN))' ;

Bu örnekte, yokturESCAPE_SQUOTEsimge makro ile eklenir a-Demirel belirteci. Çalışma zamanında a-Demirel belirteci uygun veritabanı adı ile değiştirilecek. Simge değiştirme dizesinde yanlışlıkla aktarılabilir herhangi bir tek tırnak işareti kaçış makro kaçar. SQL ServerAracı tek tek tırnak işareti iki tek tırnak son dizesi değiştirir.

Geçirilen dize belirteci değiştirmek için Örneğin, ise AdventureWorks2012'SELECT @@VERSION --, tarafından yürütülen komut SQL ServerAracısı iş adım olacaktır:

PRINT N'Current database name is AdventureWorks2012''SELECT @@VERSION --' ;

Bu durumda, eklenen ifade SELECT @@VERSION, değil idam. Bunun yerine, ekstra tek tırnak işareti sunucuya eklenen ifade bir dize olarak ayrıştırmak neden olur. Simge değiştirme dizesini tek bir tırnak işareti içermiyorsa, karakter kaçtı ve istendiği gibi belirteci içeren iş adım çalıştırır.

Simge kullanımı, bir iş adım hata ayıklamak için yazdırma deyimleri gibi kullanmak PRINT N'$(ESCAPE_SQUOTE(SQLDIR))'ve iş adım çıkış dosya veya tablo için kaydedin. Kullanım İleri sayfası Iş adım Özellikler iş adım belirtmek için iletişim kutusu dosya veya tablo çıktı.

SQL Server Aracısı belirteçleri ve makrolar

Aşağıdaki tablolarda listelenmektedir ve belirteçleri ve makroları açıklayın, SQL ServerAgent destekler.

SQL Server Aracısı belirteçleri

Belirteç

Açıklama

(A-DEMİREL)

Veritabanı adı. İş için bir uyarı çalıştırırsanız, veritabanı adı değeri Bu belirteç iş adımda otomatik olarak değiştirir.

(A-SVR)

Sunucu adı. İş için bir uyarı çalıştırırsanız, sunucu adı değeri iş adım bu belirteci otomatik olarak değiştirir.

(BİR HATA İLETİSİ)

Hata numarası. İş için bir uyarı çalıştırırsanız, hata numarası değeri Bu belirteç iş adımda otomatik olarak değiştirir.

(A-SEV)

Hata önem. İş için bir uyarı çalıştırırsanız, hata önem değeri Bu belirteç iş adımda otomatik olarak değiştirir.

(A-MSG)

İleti metni. İş için bir uyarı çalıştırırsanız, ileti metin değeri Bu belirteç iş adımda otomatik olarak değiştirir.

(TARİH)

Geçerli tarihi (YYYYMMDD'nın biçiminde).

(INST)

Örnek adı. Varsayılan örneği için varsayılan örnek adını Bu belirteç olacaktır: mssqlserver.

(JOBID)

İş kimliği

(MACH)

Bilgisayar adı.

(MSSA)

Ana SQLServerAgent hizmet adı.

(OSCMD)

Önek için programı çalıştırmak için kullanılan CmdExeciş adımları.

(SQLDIR)

Bir dizin SQL Serveryüklenir. Varsayılan olarak, bu, C:\Program Files\Microsoft SQL Server\MSSQL değerdir.

(STEPCT)

Sayısı sayısı (deneme hariç) bu adımı yürüttü. Adım komut tarafından adımlı bir döngü sona ermesi zorlamak için kullanılır.

(STEPID)

Adım kimliği

(SRVR)

Çalıştıran bilgisayarın adını SQL Server. Eğer SQL Serverörneğinin adlandırılmış bir örneği, bu örnek adı içerir.

(ZAMAN)

Geçerli Saat (SSDDSS biçiminde).

(STRTTM)

Iş yürütme başladı Saat (SSDDSS biçiminde).

(STRTDT)

Iş yürütme başladı tarihi (YYYYMMDD'nın biçiminde).

(WMI(property))

WMI uyarılara yanıt olarak çalıştırmak işler için özelliğinin değeri belirtilen ile property. Örneğin, $(WMI(DatabaseName))değeri sağlar DatabaseName özelliği için WMI olay uyarı çalışmasına neden.

SQL Server Agent Escape makrolar

Çıkış makroları

Açıklama

$(YokturESCAPE_SQUOTEsimge (token_name))

Çıkar tek tırnak (') simge değiştirme dizesi. Bir tek tırnak işareti, iki tek tırnak ile değiştirir.

$(escape_dquote (token_name))

Çıkar çift tırnak işareti ('') simge değiştirme dizesi. Bir çift tırnak işareti, iki çift tırnak işareti ile değiştirir.

$(escape_rbracket (token_name))

Sağ köşeli ayraç (]) simge değiştirme dizesi kaçar. Bir sağ parantez, iki sağ köşeli parantez ile değiştirir.

$(escape_none (token_name))

Belirteci herhangi bir karakter dizesi kaçan olmadan yerini alır. Bu makro, geriye dönük uyumluluk ortamlarında nerede simge değiştirme dizeleri yalnızca güvenilen kullanıcıların bekleniyor destek sağlanır. Daha fazla bilgi için bkz: "Güncelleştirme iş adımları kullanın makroların" Bu konudaki.

Makroları kullanmak için iş adımlar güncelleştiriliyor

İle başlayan SQL Server 2005Service Pack 1, çıkış makroları olmadan belirteçleri içeren iş adımları başarısız ve iş adım belirten bir hata iletisi içeren bir veya daha fazla belirteçleri işlemi çalıştırmadan önce bir makro ile güncelleştirilmesi gereken dönmek.

Bir komut dosyası ile sağlanan MicrosoftBilgi Bankası makalesi 915845: SQL Server Agent iş adımları, kullanımı belirteçleri başarısız SQL Server 2005 Service Pack 1.Bu komut dosyası, iş adımları kullandığınız belirteçlerini ile güncelleştirmek için kullanabileceğiniz escape_none makro. Bu komut dosyası kullandıktan sonra size, iş adımlar belirteçleri sürede kullanan ve yerine incelemenizi öneririz escape_none iş adım içerik için uygun bir kaçış makro makro.

Aşağıdaki tabloda nasıl simge değiştirme açıklar tarafından ele SQL Serverajan. Uyarı simge değiştirme açmak veya kapatmak için sağ SQL Server Agent nesne Gezgini'nde seçin Özelliklerve Uyarı sistemi sayfa seçin veya temizleyin için uyarılar tüm iş yanıtları belirteçleri Değiştir onay kutusu.

Belirteç sözdizimi

Üzerinde uyarı simge değiştirme

Kapatma uyarı simge değiştirme

Kullanılan kaçış makro

İşleri tüm belirteçleri başarıyla değiştirildi.

Uyarıları tarafından aktive belirteçleri değiştirilmez. These tokens are A-DBN, A-SVR, A-ERR, A-SEV, A-MSG, and WMI(property). Diğer statik belirteçleri başarıyla değiştirildi.

Kullanılan kaçış makro yok

Belirteçleri içeren herhangi bir işleri başarısız.

Belirteçleri içeren herhangi bir işleri başarısız.

Belirteç sözdizimi güncelleştirme örnekleri

A.Olmayan iç içe dizeleri simgelerini kullanma

Aşağıdaki örnek, iç içe olmayan basit bir script ile uygun kaçış makro güncelleştirme gösterilmiştir. Güncelleştirme komut dosyasını çalıştırmadan önce aşağıdaki iş adım komut iş adım belirteç uygun veritabanı adını yazdırmak için kullanır:

PRINT N'Current database name is $(A-DBN)' ;

Güncelleştirme komut dosyası çalıştırdıktan sonra bir ESCAPE_NONEmakro önce eklenir A-DBNbelirteci. Tek tırnak işaretlerini yazdırma dize sınırlandırmak için kullanıldığından, ekleyerek iş adım güncelleştirmeniz gerekir ESCAPE_SQUOTEmakro şöyledir:

PRINT N'Current database name is $(ESCAPE_SQUOTE(A-DBN))' ;

B.İç içe dizeleri simgelerini kullanma

Belirteçleri iç içe dizeleri veya ifadeler kullanıldığı iş adım komut dosyalarında uygun çıkış makroları eklemeden önce birden çok deyimleri gibi iç içe geçmiş tablolar yeniden.

Örneğin, kullandığı aşağıdaki iş adım düşünün A-MSGsimge ve bir çıkış makrosu ile güncelleştirilmemiş:

PRINT N'Print ''$(A-MSG)''' ;

Güncelleştirme komut dosyası çalıştırdıktan sonra bir ESCAPE_NONEmakro belirteciyle eklenir. Ancak, bu durumda, komut aşağıdaki gibi iç içe geçmiş kullanmadan yeniden yazmak ve eklemek gerekir ESCAPE_SQUOTEsimge değiştirme dizesinde aktarılabilir sınırlayıcıları düzgün kaçmak için makro:

DECLARE @msgString nvarchar(max)

SET @msgString = '$(ESCAPE_SQUOTE(A-MSG))'

SET @msgString = QUOTENAME(@msgString,'''')

PRINT N'Print ' + @msgString ;

Ayrıca quotename işlevi tırnak karakteri ayarlar bu örnekte unutmayın.

C.escape_none makro belirteçleri kullanma

Aşağıdaki örnek alır bir komut dosyası bir parçasıdır job_iddan sysjobstablo ve uses JOBIDdoldurmak için belirteç @JobIDdeğişken, ikili veri türü olarak komut dosyasının önceki bölümlerinde yer alan ilan edildi. Çünkü hiçbir sınırlayıcı ikili veri türleri için gerekli dikkat ESCAPE_NONEmakro ile kullanılan JOBIDbelirteci. Bu iş adım güncelleştirme komut çalıştırıldıktan sonra güncelleştirmek gerekir değil.

SELECT * FROM msdb.dbo.sysjobs

WHERE @JobID = CONVERT(uniqueidentifier, $(ESCAPE_NONE(JOBID))) ;

Ayrıca bkz.

Kavramlar

Uygulama işleri

Iş adımları yönetmek