Aracılığıyla paylaş


Simgeleri iş adımları kullanarak

SQL ServerAracı kullanmak belirteçler sağlarTransact-SQLiş adım komut dosyaları.İş adımınız yazarken simgeleri kullanarak yazılım programları yazarken değişkenlerini aynı esnekliği sağlar.Sonra bir belirteci bir işlem adımı komut eklemeSQL ServerAracı tarafından iş adımı yürütülmeden önce çalışma zamanında, simge yerineTransact-SQLalt sistemi.

Important noteImportant Note:

İle başlayanSQL Server 2005hizmet Pack 1,SQL ServerDeğişen aracı iş adım simge sözdizimi.Sonuç olarak, bir çıkış makrosu artık İş adımda kullanılan tüm simgeleri eşlik, ya da yoksa bu işlemi adımları başarısız olur.Çıkış makroları kullanma ve güncelleştirme,SQL ServerSimgeleri kullanan aracı iş adımları "Anlama kullanarak simgeleri," aşağıdaki bölümlerde açıklanan "SQL ServerAracı simgeleri ve makrolar, "ve"İş adımlarını kullanın makroları. güncellemek" Buna ek olarak, SQL Server 2000sözdizimi, köşeli aramak için kullanılan SQL Serveraracı iş adım simgeleri (örneğin, " [DATE]") de değişti.Şimdi adları simge parantez içine alın ve dolar işareti yerleştirmek gerekir ( $) simge sözdizimi. başındaÖrneğin:

$(ESCAPE_Makro adı(DATE))

Simgeleri kullanarak anlama

Security noteSecurity Note:

Windows Olay günlüğü üzerine yazma izinleri olan herhangi bir Windows kullanıcı tarafından etkin iş adımları erişebilirsinizSQL ServerAracı uyarıları veya WMI uyarıları.Bu bir güvenlik riski önlemek içinSQL ServerAracı simgeleri işleri etkin uyarı olarak, kullanılabilir varsayılan olarak devre dışıBu simgeler şunlardır: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(özellik).

Bu simgeleri kullanmak istiyorsanız, önce yalnızca güvenilen Windows güvenlik gruplarının üyeleri, Administrators grubunun gibi bilgisayar olay günlüğüne yazma izinlerine sahip olun buradaSQL Serveryer alır.Sonra sağ tıklatınSQL Server Agent Object Explorer'da özellikleri seçip uyarı System sayfasında sağlayan bu simgeleri. Uyarılar tüm iş yanıtlar için simgeleri Değiştir

SQL ServerAracı simgesi yerine, basit ve etkili: SQL Server Aracı bir belirteç tam harflerden oluşan dize değerini değiştirir.Tüm belirteçler büyük/küçük durum duyarlıdır.Kendi iş adımlar bu dikkate ve simgeleri kullanın ya da değiştirme dizesinin doğru veri türüne dönüştürmek doğru teklif.

Örneğin, veritabanında adını yazdırmak için aşağıdaki ifadeyi kullanabilirsiniz bir iş. adım:

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

Bu örnekte,ESCAPE_SQUOTE makro eklenen ile A DBN simgesi. Zamanında,A-DBN simge değiştirilecek uygun veritabanı adı. ile Çıkış makro içinde simge yerine yanlışlıkla geçen tek bir tırnak işareti escapes dize.SQL Server Aracı yerine tek tek tırnak işareti son iki tek tırnak işaretleri dize.

Örneğin, dize geçirilen simgeyi değiştirmek için iseAdventureWorks'SELECT @@VERSION --, tarafından çalıştırılan komutSQL ServerAracı iş adım olacaktır:

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

Bu durumda, eklenen deyimSELECT @@VERSION, yürütmek yok.Bunun yerine, fazladan tek tırnak işareti eklenen deyim bir dize olarak ayrıştırmak sunucu neden olur.Simge yerine dize tek bir tırnak işareti içermeyen karakter öncesinde ve simge içeren iş adımı gerektiği gibi çalışır.

Hata ayıklama simge kullanımı, işlem adımları için gibi yazdırma ifadelerini kullanınPRINT N'$(ESCAPE_SQUOTE(SQLDIR))'ve iş adım çıktıyı bir dosyaya veya tablo.UseGelişmiş bir iş adımı belirtmek için İş adım özellikleri iletişim kutusunun sayfa çıktısı dosya veya tablo.

SQL Server Agent simgeleri ve makrolar

Aşağıdaki tablolar, listeler ve simgeleri ve makrolar,SQL ServerAracı destekler.

SQL Server Agent simgeleri

Simge

Açıklama

(A-DBN)

Veritabanı adı.Bir uyarı iş gerçekleştirildiğinde, veritabanı adı değer bu simge iş adımda otomatik olarak değiştirir.

(A-SVR)

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

(BİR HATA)

Hata Numarası.Bir uyarı iş gerçekleştirildiğinde, hata numarası değeri bu simge iş adımda otomatik olarak değiştirir.

(A-SEV)

Hata önem.Bir uyarı iş gerçekleştirildiğinde, hata önem değeri bu simge iş adımda otomatik olarak değiştirir.

(A-İLETİ)

İleti metni.Bir uyarı iş gerçekleştirildiğinde, iletinin metin değeri iş adımında Bu simge otomatik olarak değiştirir.

(TARİH)

Geçerli tarih (YYYYAAGG biçiminde).

(INST)

Örnek adı.Varsayılan örnek için bu belirteç boş olur.

(GÖREVKİMİĞİ)

iş ID.

(MACH)

Bilgisayar adı.

(MSSA)

Ana SQLServerAgent hizmet adı.

(OSCMD)

Programı çalıştırmak için kullanılan önekiCmdExec iş adımları.

(SQLDIR)

DiziniSQL 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 komutuyla sonlandırma multistep döngüsü zorlamak için kullanılabilir.

(STEPID)

Adım kodu

(SRVR)

Çalıştıran bilgisayarın adıSQL Server.,SQL Serveradlandırılmış bir örneğine örneğidir, bunu içeren örnek adı.

(SAAT)

Geçerli saat (SSDDSS biçiminde).

(STRTTM)

saat (SSDDSS biçimi), iş yürütme başladı.

(STRTDT)

İş yürütme başladı tarih (YYYYAAGG biçiminde).

(WMI)property))

İşler, WMI uyarılara yanıt olarak çalıştırmak için özellik değerinin belirtilen tarafındanproperty.Örneğin,$(WMI(DatabaseName))değeri sağlayanVeritabanı adı özellik, WMI olay için çalışma. uyarıya yol açan

SQL Server Agent Escape makrolar

Makrolar, çıkış

Açıklama

$ (ESCAPE_SQUOTE)token_name))

Tek tırnak (') içinde simge yerine çıkar dize.Bir tek tırnak işareti, iki tek tırnak işareti ile değiştirir.

$ (ESCAPE_DQUOTE)token_name))

Çift tırnak işareti ('') belirteci yerine çıkar dize.Bir çift tırnak işareti, iki çift tırnak işareti ile değiştirir.

$ (ESCAPE_RBRACKET)token_name))

Simge değiştirme dizesinin sağ köşeli ayraç (]) escapes.Bir sağ ayraç iki sağ köşeli ayraç ile değiştirir.

$ (ESCAPE_NONE)token_name))

Herhangi bir karakter escaping olmadan simgesi yerine dize.Bu makro, geriye dönük uyumluluk ortamlarında simge değiştirme dizeleri güvenilen kullanıcıların yalnızca burada beklenen desteklemek için sağlanır.Daha fazla bilgi için bu konuda daha sonra "Güncelleştirme iş adımları için kullanım makroları," bakın.

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

BaşlayarakSQL Server 2005hizmet Pack 1 ve çıkış makrolarını olmayan simgeleri içeren iş adımları başarısız ve iade işlemini adım belirten bir hata iletisi içeren bir veya daha fazla simgeleri iş önce bir makro güncelleştirilmelidir için çalışma.

Bir komut dosyası ile sağlanırMicrosoftBilgi Bankası makalesi 915845: SQL Server Agent Job Steps simgeleri kullan hata, SQL Server 2005 hizmet Pack 1, Tüm iş adımınız simgeleri kullanın ESCAPE_NONE makro. ile güncelleştirmek için bu komut dosyası .program kullanabilirsiniz Bu komut dosyası kullandıktan sonra değiştirmek ve simgeleri olabildiğince çabuk kullanan iş adımınız gözden öneririzESCAPE_NONE makro iş adımı bağlam. için uygun bir çıkış makrosu

Nasıl simge yerine aşağıdaki tabloda açıklanmıştır tarafından eleSQL ServerAracı.Uyarı simgesi yerine açıp kapatmak için tıklatınSQL Server Agent Object Explorer'da seçme özelliklerive sayfa Alert System , seçme veya temizleme Uyarılar tüm iş yanıtlar için simgeleri Değiştir onay kutusu.

Simge sözdizimi

Uyarı simgesi değiştirme hakkında

Devre dışı uyarı simgesi değiştirme

Makro kullanılan çıkış

Tüm belirteçler işlerini başarılı bir şekilde değiştirilir.

Etkin uyarı simgeleri değiştirilir.Bu simgeleri olanA-DBN, A-SVR, A-ERR, A-SEV, A-MSG, and WMI(property).Statik diğer simgeleri başarıyla değiştirildi.

Kullanılan hiçbir ESCAPE makro

Simgeleri içeren tüm işleri başarısız.

Simgeleri içeren tüm işleri başarısız.

Simge sözdizimi güncelleştirme örnekleri

C.İç içe olmayan dizeleri simgelerini kullanma

Aşağıdaki örnekte, basit olmayan iç içe komut dosyası ile uygun bir çıkış makrosu güncelleştirmeyi gösterir.Aşağıdaki iş adımı komut dosyası güncelleştirme komut dosyasını çalıştırmadan önce uygun veritabanı adını yazdırmak için bir iş adımı simge kullanır:

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

Güncelleştirme komut dosyasını çalıştırdıktan sonra birESCAPE_NONEmakro önce eklenenA-DBNsimge.Tek tırnak işaretleri, baskı dize sınırlandırmak için kullanıldığından, ekleyerek iş adımı güncelleştirmelisinizESCAPE_SQUOTEmakro aşağıdaki gibi:

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

b.İç içe dizeleri simgelerini kullanma

İç içe geçmiş bir dize veya ifade simgeleri kullanıldığı iş adımı komut dosyalarında iç içe ifadeleri birden çok ifade uygun çıkış makrolarını eklemeden önce yazılmış.

Kullanan aşağıdaki iş adımı örneğin düşününA-MSGsimge ve bir çıkış makrosu ile güncelleştirildi:

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

Güncelleştirme komut dosyasını çalıştırdıktan sonra birESCAPE_NONEmakro eklenen simgesi.Ancak bu durumda, komut dosyası gibi iç içe geçmiş kullanmadan yeniden ve yokturESCAPE_SQUOTEmakro doğru simge yerine dizede geçen sınırlayıcı çıkış:

DECLARE @msgString nvarchar(max)

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

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

PRINT N'Print ' + @msgString ;

Ayrıca QUOTENAME işlevini tırnak karakteri ayarlar Bu örnekte dikkat edin.

c.ESCAPE_NONE makroyla simgelerini kullanma

Aşağıdaki örnekte, alan bir komut dosyasının parçası olanjob_idgelensysjobsTablo ve kullandığıJOBIDdoldurmak için simge@JobIDdeğişken olan bir ikili veri türü. komut dosyasında daha önce bildirilenHiçbir sınırlayıcı ikili veri türleri için gerekli olduğundan, NotESCAPE_NONEmakro ile kullanılanJOBIDsimge.Güncelleştirme komut dosyasını çalıştırdıktan sonra bu iş adım güncelleştirmeniz gerekecektir değil.

SELECT * FROM msdb.dbo.sysjobs

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

See Also

Other Resources