Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir uyarı oluşturur.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_add_alert [ @name = ] N'name'
[ , [ @message_id = ] message_id ]
[ , [ @severity = ] severity ]
[ , [ @enabled = ] enabled ]
[ , [ @delay_between_responses = ] delay_between_responses ]
[ , [ @notification_message = ] N'notification_message' ]
[ , [ @include_event_description_in = ] include_event_description_in ]
[ , [ @database_name = ] N'database_name' ]
[ , [ @event_description_keyword = ] N'event_description_keyword' ]
[ , { [ @job_id = ] job_id | [ @job_name = ] N'job_name' } ]
[ , [ @raise_snmp_trap = ] raise_snmp_trap ]
[ , [ @performance_condition = ] N'performance_condition' ]
[ , [ @category_name = ] N'category_name' ]
[ , [ @wmi_namespace = ] N'wmi_namespace' ]
[ , [ @wmi_query = ] N'wmi_query' ]
[ ; ]
Tartışmalar
[ @name = ] N'adı'
Uyarının adı. Ad, uyarıya yanıt olarak gönderilen e-posta veya çağrı kutusu iletisinde görünür. Benzersiz olmalıdır ve yüzde (%) karakterini içerebilir.
@namesysname'dir ve varsayılan değer yoktur.
[ @message_id = ] message_id
Uyarıyı tanımlayan ileti hata numarası. (Genellikle tablodaki bir hata numarasına sysmessages karşılık gelir.) @message_id, varsayılan değeri olan int'tir0. Uyarıyı tanımlamak için @severity kullanılıyorsa, @message_id veya NULLolmalıdır0.
Yalnızca sysmessages Microsoft Windows uygulama günlüğüne yazılan hatalar uyarı gönderilmesine neden olabilir.
[ @severity = ] önem derecesi
Uyarıyı tanımlayan önem düzeyi (içinden 1 ) 25.
@severity, varsayılan değeri olan int'tir0. Belirtilen önem derecesiyle Windows uygulama günlüğüne gönderilen tabloda depolanan sysmessages tüm SQL Server iletileri uyarının gönderilmesine neden olur. Uyarıyı tanımlamak için @message_id kullanılıyorsa , @severity olmalıdır 0.
[ @enabled = ] etkin
Uyarının geçerli durumunu gösterir.
@enabled, varsayılan değeri 1 (etkin) olan tinyint'tir. ise 0, uyarı etkin değildir ve tetiklenmiyorsa.
[ @delay_between_responses = ] delay_between_responses
Uyarıya verilen yanıtlar arasındaki saniye cinsinden bekleme süresi.
@delay_between_responses, varsayılan 0değeri olan int değeridir. Bu, yanıtlar arasında beklemenin gerek olmadığı anlamına gelir (uyarının her oluşumu bir yanıt oluşturur). Yanıt şu formlardan birinde veya her ikisinde olabilir:
- E-posta veya çağrı ile gönderilen bir veya daha fazla bildirim
- Yürütülecek bir iş
Bu değeri ayarlayarak, kısa bir süre içinde bir uyarı tekrarlandığında istenmeyen e-posta iletilerinin gönderilmesini engellemek mümkündür.
[ @notification_message = ] N'notification_message'
e-posta, net sendveya çağrı cihazı bildiriminin bir parçası olarak işlecine gönderilen isteğe bağlı bir ek ileti.
@notification_messagenvarchar(512), varsayılan değeridir NULL.
@notification_message belirtmek, düzeltme yordamları gibi özel notlar eklemek için kullanışlıdır.
[ @include_event_description_in = ] include_event_description_in
SQL Server hatasının açıklamasının bildirim iletisinin bir parçası olarak eklenip eklenmeyeceği.
@include_event_description_in, varsayılan değeri 5 (e-posta ve net send) olan tinyint değeridir ve bu değerlerden bir veya daha fazlasının mantıksal işleçle birleştirilmesine OR sahip olabilir.
Önemli
Pager ve net send seçenekler, SQL Server'ın gelecekteki bir sürümünde SQL Server Aracısı'ndan kaldırılacaktır. Bu özellikleri yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özellikleri kullanan uygulamaları değiştirmeyi planlayın.
| Değer | Açıklama |
|---|---|
0 |
Hiç kimse |
1 |
E-posta gönder |
2 |
Çağrı cihazı |
4 |
net send |
[ @database_name = ] N'database_name'
Uyarının tetiklenmek için hatanın oluşması gereken veritabanı.
@database_name sağlanmazsa, hatanın oluştuğu yerden bağımsız olarak uyarı tetikler. [ ]) içine alınmış adlara izin verilmez.
[ @event_description_keyword = ] N'event_description_keyword'
Hata iletisi günlüğündeki SQL Server hatasının açıklamasında bulunması gereken karakter dizisi.
@event_description_keywordnvarchar(100), varsayılan değeri NULL. Bu parametre, nesne adlarını filtrelemek için kullanışlıdır (örneğin, customer_table).
Uyarı
LIKETransact-SQL ifade desen eşleştirme karakterleri kullanılamaz.
[ @job_id = ] job_id
Bu uyarıya yanıt olarak çalıştırılacak işin iş kimlik numarası.
@job_id veya @job_name belirtilmelidir, ancak her ikisi de belirtilemiyor.
[ @job_name = ] N'job_name'
Bu uyarıya yanıt olarak yürütülecek işin adı.
@job_id veya @job_name belirtilmelidir, ancak her ikisi de belirtilemiyor.
[ @raise_snmp_trap = ] raise_snmp_trap
SQL Server sürüm 7.0'da uygulanmadı.
@raise_snmp_trap, varsayılan değeri olan tinyint'tir0.
[ @performance_condition = ] N'performance_condition'
'ItemComparatorValue' biçiminde ifade edilen bir değer.
@performance_condition, varsayılan NULLdeğeri olan nvarchar(512)'dir ve bu öğelerden oluşur.
| Format öğesi | Açıklama |
|---|---|
| Öğe | Bir performans nesnesi, performans sayacı veya sayacın adlandırılmış örneği. |
| Karşılaştırıcı | Şu işleçlerden biri: >, <veya =. |
| Value | Sayacın sayısal değeri. |
[ @category_name = ] N'category_name'
Uyarı kategorisinin adı.
@category_namesysname değeridir ve varsayılan değeri .NULL
[ @wmi_namespace = ] N'wmi_namespace'
Olayları sorgulamak için WMI ad alanı.
@wmi_namespacesysname değeridir ve varsayılan değeri .NULL Yalnızca yerel sunucudaki ad alanları desteklenir.
[ @wmi_query = ] N'wmi_query'
Uyarı için WMI olayını belirten sorgu.
@wmi_querynvarchar(512), varsayılan değeridir NULL.
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Sonuç kümesi
Yok.
Açıklamalar
sp_add_alert
msdb veritabanından çalıştırılmalıdır.
SQL Server ve SQL Server uygulamaları tarafından oluşturulan hataların/iletilerin Windows uygulama günlüğüne gönderildiği ve bu nedenle uyarı oluşturabileceği durumlar şunlardır:
- Önem derecesi 19 veya üzeri
sys.messageshatalar - Söz dizimi ile
WITH LOGçağrılan herhangi birRAISERRORdeyim - Kullanılarak değiştirilen veya oluşturulan tüm
sys.messageshatalarsp_altermessage - kullanılarak günlüğe kaydedilen tüm olaylar
xp_logevent
SQL Server Management Studio, uyarı sisteminin tamamını yönetmek için kolay, grafik bir yol sağlar ve uyarı altyapısını yapılandırmanın önerilen yoludur.
Bir uyarı düzgün çalışmıyorsa aşağıdakilerin yapılıp yapılmadığını denetleyin:
SQL Server Agent hizmeti çalışıyor
Olay Windows uygulama günlüğünde göründü
Uyarı etkinleştirildi
xp_logeventile oluşturulan olaylarmasterveritabanında gerçekleşir. Bu nedenle,xp_logeventuyarının @database_name veyaNULLolmadığı sürece bir uyarımastertetiklemez.
İzinler
Varsayılan olarak, yalnızca sysadmin sabit sunucu rolünün üyeleri sp_add_alertyürütebilir.
Örnekler
Örnek 1 - İş için uyarı ekleme
Aşağıdaki örnek, tetiklendiğinde işi çalıştıran Back up the AdventureWorks2022 Database bir uyarı (Test Uyarısı) ekler.
Uyarı
Bu örnekte, 55001 iletisinin Back up the AdventureWorks2022 Database ve işin zaten var olduğu varsayılır. Örnek yalnızca açıklayıcı amaçlarla gösterilir.
USE msdb;
GO
EXECUTE dbo.sp_add_alert
@name = N'Test Alert',
@message_id = 55001,
@severity = 0,
@notification_message = N'Error 55001 has occurred. The database will be backed up...',
@job_name = N'Back up the AdventureWorks2022 Database';
GO
Örnek 2 - Çoğaltma eşiği için uyarı ekleme
Aşağıdaki örnek, bir çoğaltma işleminin gecikme eşiğini aştığını size bildirmek için bir uyarı ekler:
EXECUTE msdb.dbo.sp_add_alert
@name = N'Replication Warning: Transactional replication latency (Threshold: latency)',
@message_id = 14161,
@severity = 0,
@enabled = 1,
@delay_between_responses = 30,
@include_event_description_in = 5,
@category_name = N'Replication',
@job_id = N'00000000-0000-0000-0000-000000000000';
GO