Forum
Herkese merhaba,
Öncelikle daha önce SQL ile hiç çalışmadığımı belirtmek isterim. Dolayısıyla, işin jargonu ile ilgili de pek bilgim yok, anlamsız şeyler yazarsam mazur görün lütfen. Kullandığım database SQL Server 2012 Express. Şöyle bir sorunum var:
Elimde "moment, ln, ix, value" şeklinde 4 sütundan oluşan "mspdb" adında bir tablo var. Mspdb'ye yeni eklenen satırların "value" sütunlarındaki değerleri, oluşturmuş olduğum "deneme" adlı tabloya yazan bir trigger oluşturdum. Kodu da şu şekilde:
CREATE TRIGGER trig_update_deneme
ON [mspdb]
FOR INSERT
AS
Begin
Insert into deneme (ln, value)
Select distinct i.value
from inserted i
Left Join deneme e
on i.value = e.value
End
Ancak sormak istediğim nokta şu:
"mspdb" tablosunun "ln" sütununa "ya1, ya2, ya3 ve ya4" şeklinde dört farklı değer geliyor. Yani tabloya periyodik olarak, aynı anda 4 satır birden ekleniyor. Benim istediğim ise bu satırların dördünü birden "deneme"ye taşımak yerine sadece "ln" sütununun değeri "ya1" olan satırların "value" değerlerini aktarmak istiyorum. Kod üzerinde nasıl bir değişiklik yapmam gerekecek?
Şimdiden çok teşekkürler. İyi çalışmalar.
Merhaba,
Oldukça karışık gibi geldi anlatımım. Ama doğru anlamışsınız gibi gözüküyor. ben de oraya where yazıp koşul belirtmeye çalışmıştım ama başarılı olamadım. doğru yoldayım ama hatayı bulamadım.
ln='ya1' demişsiniz. orada ' ' işaretleri mi koyulması gerekiyor? bu şekilde ekleme yaptım "invalid column name" hatası veriyor. kendim denerken de aynı hatayı alıyordum. yazdığım koşulu sütun ismi olarak algılıyor. ayrıca o sütunun veri tipi olarak varchar seçmiş bulunmaktayım. belki bir faydası olur.
edit: deneme altına mspdb deki ln sütununu kopyalamayacağım. mspdb'deki ln sütunundaki değerlere göre koşul belirtip sadece koşulu sağlayan satırladan value değerini aktaracağım.