Aracılığıyla paylaş


Simgeleri kullanarak iş adımları

SQL ServerAracısı belirteçleri kullanmanıza izin verir Transact-SQL iş adım komut dosyaları.iş adımınız yazarken simgeleri kullanarak değişkenler sağlayan yazılım programları yazarken aynı esneklik sunar.Bir iş adım komut dosyasında belirteç ekledikten sonra SQL Server Aracısı yerini alan belirteci run at saat, iş adım tarafından yürütülmeden önce Transact-SQL alt sistemi.

Önemli notÖnemli

İle başlayan SQL Server 2005 Service Pack 1, SQL Server Aracısı iş adım belirteç sözdizimi değiştirildi.Sonuç olarak, bir çıkış makrosu şimdi iş adımda kullanılan tüm belirteçler eşlik gerekir, veya bildirimin bu iş adımları başarısız olur.Çıkış makroları kullanarak ve güncelleştirme bilgisayarınızın SQL Server Agent iş belirteçleri kullanma adımları "Anlama kullanarak belirteçleri," aşağıdaki bölümlerde açıklanan "SQL Server Aracısı belirteçleri ve makrolar," ve "iş adımları için makroları kullanın." Buna ek olarak, SQL Server 2000 sözdizimi, köşeli ayraç içinde aramak için kullanılan SQL Server Aracısı iş adım belirteçler (örneğin, "[DATE]") de değişti.Şimdi simge adları parantez içine alın ve dolar işareti koyun gerekir ($) başında belirteç sözdizimi.Örneğin:

$(ESCAPE_Makro adı(DATE))

Simgeleri kullanarak anlama

Güvenlik notuGüvenlik Notu

Windows olay günlüğü üzerine yazma izinleri olan herhangi bir Windows kullanıcı tarafından etkin iş adımları erişebilirsiniz SQL Server Agent uyarıları veya WMI uyarıları.Bu bir güvenlik riski önlemek için SQL Server Aracısı belirteçleri uyarıları tarafından activated görevlerle kullanılabilir varsayılan olarak devre dışıBu simgeleri şunlardır: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(özellik).

Bu belirteçler kullanmanız gerekirse, önce yalnızca güvenilen Windows Güvenlik gruplarının üyeleri, Yöneticiler grubu gibi bilgisayarın olay günlüğüne yazma izinlerine sahip olun burada SQL Server bulunuyor.Sağ sql Server Agent Object Explorer'da seçin Özelliklerve Alert System sayfa, select için uyarılar tüm iş yanıtları belirteçleri değiştirin bu simgeleri etkinleştirmek için.

SQL ServerBasit ve etkili aracı belirteç değiştirme: SQL Server Agent tam bir sabit değer değiştirir dize belirteci değeri.Tüm belirteçler durum duyarlıdır.iş adımınız bunu göz önüne alması ve belirteçleri kullanma veya değiştirme dönüştürmek doğru teklif dize doğru veri türüne.

Örneğin, aşağıdaki kullanım deyim iş adımda veritabanının adını yazdırmak için:

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

Bu örnekte, escape_squote ile makro eklendiğinde a dbn belirteci.Çalışma sırasında saat, a dbn belirteci uygun veritabanı adı ile değiştirilecek.Escape makro içinde simge yerine yanlışlıkla geçen tek tırnak işareti çıkmanızı sağlar dize.SQL Server Agent yerini alacak tek tek tırnak işareti son iki tek tırnak işaretleri ile dize.

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

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

Bu durum, deyim, eklenen SELECT @@VERSION, yürütmek.Bunun yerine, Ekstra tek tırnak işareti eklenen deyim bir dize olarak ayrıştırmak sunucu olur.Simge değiştirme dize tek bir tırnak işareti içermeyen karakter virgüllerden önce ve amaçlandığı şekilde bulunduğu belirteç iş adım çalıştırır.

İş adımınız Token kullanımında hata ayıklamak için yazdırma ifadeleri gibi kullanmak PRINT N'$(ESCAPE_SQUOTE(SQLDIR))' ve iş adım çıkış bir dosya veya tablo.Use Gelişmiş sayfa İş adım özelliklerini 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 listelemek ve belirteçleri ve makroları açıklayın, SQL Server Agent destekler.

sql Server aracısı belirteçleri

Token

Açıklama

(A-DBN)

Veritabanı adı.İş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ı.İşin bir uyarı çalıştırırsanız sunucu adı iş adımda bu belirteç değerini otomatik olarak değiştirir.

(A-ERR)

Hata numarası.İş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.İş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.İş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 tarih (YYYYAAGG biçiminde).

(KOPYAADI)

Ö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)

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

(SQLDIR)

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

(STEPCT)

Bir kaç kez sayısı bu adımı (deneme hariç) yürüttü.Çok adımlı bir döngünün sonlandırılması zorlamak için adım komutuyla kullanılabilir.

(STEPID)

Adım Kimliği

(SRVR)

Çalıştıran bilgisayarın adını SQL Server.If the SQL Server instance is a named instance, this includes the instance name.

(SÜRE)

Geçerli saat (SSDDSS biçiminde).

(STRTTM)

iş yürütülmeye başlandığı saat (SSDDSS biçiminde).

(STRTDT)

iş yürütülmeye başlandığı tarih (YYYYAAGG biçiminde).

(WMI(property))

Değeri olan WMI uyarılara yanıt olarak çalıştırmak işleri için özellik tarafından belirtilen property.Örneğin, $(WMI(DatabaseName)) değeri sağlar veritabanı adı özellik çalıştırmak için bu uyarı neden olan WMI olay için.

sql Server Agent Escape makrolar

Makrolar, çıkış

Açıklama

$(escape_squote (token_name))

Tek tırnak (') içine belirteç değiştirme çıkar dize.Bir tek tırnak işareti, iki tek tırnak ile değiştirir.

$(escape_dquote (token_name))

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

$(escape_rbracket (token_name))

Sağ köşeli ayraç ([]) simge değiştirme çıkmanızı sağlar dize.Bir sağ ayraç, iki sağ köşeli ayraç ile yerini alır.

$(escape_none (token_name))

Belirteci herhangi bir karakteri kaçış olmadan değiştirir dize.Bu makro, geriye dönük uyumluluk belirteç değiştirme dizeleri yalnızca beklenen güvenilen kullanıcıların bulunduğu ortamlarda desteklemek amacıyla sağlanır."Güncelleştirme iş adımları kullanın makroların," daha fazla bilgi için bkz: Bu konuda daha sonra.

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

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

Bir komut dosyası ile sağlanan Microsoft Bilgi Bankası makale 915845: sql Server 2005 Service Pack 1 belirteçleri kullanma sql Server Agent iş adımları başarısız.Tüm simgeleri ile kullanmak sizin iş adımları güncelleştirmek için bu komut dosyasını kullanabilirsiniz escape_none makro.Bu komut dosyası kullandıktan sonra size mümkün olan en kısa sürede belirteçleri kullanma ve değiştirme sizin iş adımları incelemeniz önerilir escape_none iş adım içerik için uygun olan bir kaçış makro makro.

Aşağıdaki tablo nasıl belirteç değiştirme açıklar tarafından ele SQL Server Aracısı.Uyarı simge değiştirme veya devre dışı bırakmak için sağ sql Server Agent Object Explorer'da seçin Özelliklerve Uyarı sistemi sayfa seçin ya da temizleyin için uyarılar tüm iş yanıtları belirteçleri değiştirin onay kutusunu.

Belirteç sözdizimi

Üzerinde uyarı simge değiştirme

Kapalı uyarı simge değiştirme

Kullanılan KAÇIŞ makro

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

Belirteçleri etkinleştirilmiş uyarıları tarafından değiştirilir.These tokens are A-DBN, A-SVR, A-ERR, A-SEV, A-MSG, and WMI(property).Statik diğer belirteçleri başarıyla değiştirildi.

Kullanılan hiçbir KAÇIŞ makro

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

Simgeleri içeren tüm 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, basit olmayan iç içe komut dosyası uygun kaçış makro ile güncelleştirmek gösterilmiştir.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ı çalıştırdıktan sonra bir ESCAPE_NONE önce makro eklendiğinde A-DBN belirteci.Tek tırnak işaretlerini yazdırma dize sınırlandırmak için kullanıldığından, ekleyerek iş adım güncelleştirmelisiniz ESCAPE_SQUOTE aşağıdaki gibi makro:

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

B.İç içe dizeleri simgelerini kullanma

Yeniden belirteçleri iç içe dizeleri veya ifadeler kullanıldığı yerlerde iş adım komut dosyalarında, iç içe geçmiş ifadeler birden çok deyimleri uygun çıkış makroları eklemeden önce yazan.

Örneğin, kullandığı aşağıdaki iş adım göz önünde A-MSG simge ve bir çıkış makrosu ile güncelleştirildi:

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

Güncelleştirme komut dosyası çalıştırdıktan sonra bir ESCAPE_NONE makro eklendiğinde belirteci.Ancak, bu durumda, komut dosyasını aşağıdaki gibi iç içe geçirme kullanmadan yeniden yazmak ve eklemek zorunda ESCAPE_SQUOTE içinde simge yerine geçirilen sınırlayıcıları düzgün kaçış makro dize:

DECLARE @msgString nvarchar(max)

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

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

PRINT N'Print ' + @msgString ;

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

C.escape_none makro ile belirteçleri kullanma

Aşağıdaki örnek alır bir komut dosyasının parçası olan job_id dan sysjobs Tablo ve kullanımları JOBID doldurmak için belirteç @JobID değişkeni, daha önce de komut dosyası olarak bildirildiğibir ikili veri türü. Hiçbir sınırlayıcı ikili veri türleri için gerekli olduğundan, Not ESCAPE_NONE ile kullanılan makro JOBID belirteci.Update komut dosyasını çalıştırdıktan sonra bu iş adım güncelleştirmek zorunda kalabilir.

SELECT * FROM msdb.dbo.sysjobs

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

Ayrıca bkz.

Başvuru