Veritabanları ayarlanmış ve tetikleyiciler farklı değildir. Belirli bir işlem yapıldığında tetikleyici tetiklenir ve bu işlem birden çok satırı etkileyebilir. Böylece, "Say I want to know the Primary Key of that row"
sorusu bir yanlış isimdir. Birden çok satır eklenmiş olabilir.
SQL Server, inserted
ve deleted
adlı AFTER tetikleyicileri için iki özel tablo sunar ve bunlar bir eylem tarafından eklenmiş veya silinmiş satırları temsil eder ve etkilenen tabloyla aynı şekilde yapılandırılır. Bir güncelleme tetikleyicisi hem inserted
hem de deleted
'u doldurabilirken, bir ek tetikleyici yalnızca inserted
tablosunu doldurabilir. sözlerinden
: e-posta alıcısı karar yabancı anahtar kimliği tetik ile biri olan (ilk tablodaki bulunan ikinci bir tabloda, bir değere dayalı olacaktır
ama
Bu sorunun cevabı, satırlar arasında gezinmek ve bir e-posta göndermek için inserted
tablosunu (yine birden çok satıra sahip olabileceğini varsayalım) kullanmaktır. Ancak, bir e-posta mantığını tetikleyiciye koymanızı öneriyorum. Bu mantığı saklı bir prosedüre koymanızı ve e-postanızı şapka. Başvuru için
: Create Trigger
@John geçerli: ürünü "SQL Server" değil "MSSQL" denir. "MSSQL" kolayca "MySQL" ile karıştırılabilir. Ayrıca, bir SQL Server sorusu sorduğunuzda, "sql-server" etiketini kullanmanızı öneririm. "sql", SQL dili hakkında genel sorular içindir. –
Not için teşekkürler. Bunu yapacak. – johnshaddad
Sorunuz basit olarak bir tetikleyicinin nasıl tanımlanacağıyla ilgili mi, yoksa etkilenen satırlarda işlem yapmak için kullanabileceğiniz bir tetikleyici nasıl yazılır? Daha sonra, o zaman sorunuzu yeniden düşünmeyi düşünmelisiniz. – Thomas