Odinn Mesaj tarihi: Ocak 7, 2009 Paylaş Mesaj tarihi: Ocak 7, 2009 Merhabalar SQL de triggerları anlamaya çalışıyorum, diyelim şöyle bir tek databaseimiz var: User(id int, ad varchar(30), soyad varchar(30) ) Öyle bir trigger yazmak istiyorumki, bir user Insert edilirken soyad boş bırakılırsa (yani null), soyadı yerine otomatik 'Kamil' eklensin. Bunu nasıl başarabilirim? Teşekkürler :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gkgokhan Mesaj tarihi: Ocak 7, 2009 Paylaş Mesaj tarihi: Ocak 7, 2009 Sql programlamadan daha çok herhalde .net'te halledebilirsin gibi geliyor.Yani kullanıcı Windowns App'ta boş bırakırsa oraya otomatik bunu ekle denilebilir.Ama sql'de böyle birşey varmı tam bende hatırlamıyorum.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Odinn Mesaj tarihi: Ocak 7, 2009 Konuyu açan Paylaş Mesaj tarihi: Ocak 7, 2009 Yok direk sql triggerla ilgili orasından eminim :) Acaba böyle birşey olabilir mi ? create trigger soyad_check before insert on User for each row when (old.query_sql is null) begin insert into User (id, ad , soyad) values (:old.id, :old.ad, 'Kamil'); end; Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gkgokhan Mesaj tarihi: Ocak 7, 2009 Paylaş Mesaj tarihi: Ocak 7, 2009 Sanmakla sanmamak arasında kaldım.Zaten hiç bir şey yapamıyorum dönemindeydim.Ben burdan Kişisel'e geçiyim.Görüşürüz dostum ;( Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
elesso Mesaj tarihi: Ocak 7, 2009 Paylaş Mesaj tarihi: Ocak 7, 2009 Odinn said: Yok direk sql triggerla ilgili orasından eminim :) Acaba böyle birşey olabilir mi ? create trigger soyad_check before insert on User for each row when (old.query_sql is null) begin insert into User (id, ad , soyad) values (:old.id, :old.ad, 'Kamil'); end; bende benzer bişey yapmaya çalıştım ama benim yaptığımda nereyi boş bırakırsan bırak kamil yazıcaktıki seninkini gördüm. benim yapmaya çalıştığım after insert ileydi gerçi. ama .netle cidden daha rahat olur Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Ocak 7, 2009 Paylaş Mesaj tarihi: Ocak 7, 2009 mssql kac kullaniyorsun bilmiyorum. ben en son triggerimi 5 sene once yazdigim icin (o kadar oldu mu yahu?) uyum sorunu olabilir, genel olarak aklimda kaldigi kadariyla yazayim CREATE TRIGGER soyad_check ON User FOR INSERT AS DECLARE @soyad VARCHAR(100) DECLARE @id INT -- yanlis olabilir int SELECT @soyad = (SELECT soyad FROM Inserted) IF(@ soyad = "") BEGIN UPDATE User SET soyad="Kamil" WHERE id=@id -- keske limit olsa mssql'de de.. END boyle birsey olmasi lazim.. sallamasyon varsa kusura bakma Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Ocak 7, 2009 Paylaş Mesaj tarihi: Ocak 7, 2009 Odinn said: Yok direk sql triggerla ilgili orasından eminim :) Acaba böyle birşey olabilir mi ? create trigger soyad_check before insert on User for each row when (old.query_sql is null) begin insert into User (id, ad , soyad) values (:old.id, :old.ad, 'Kamil'); end; bu arada, bu syntax dogru mu bilemiyorum ama, dogruysa bile duble kayit yapabilitesi nedeniyle before inster yapiyorsan bir sekilde kaydi durdurman lazim. nasil yapiliyordu hatirlamiyorum ama yapiliyordu =) rollback mollback bile vardi Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Ocak 8, 2009 Paylaş Mesaj tarihi: Ocak 8, 2009 eskisini bilmiyorum da mssql 2005 de triggerlar per row değil per query. trigger ın içi; Update insan set soyadi='Kamil' where insan.id in (select id from inserted where soyadi is null); gibi bişi olması lazım Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Misafir Guest Mesaj tarihi: Ocak 8, 2009 Paylaş Mesaj tarihi: Ocak 8, 2009 Tabloyu tanımlarken her sütun için default değer verebiliyorsun. Bir satır eklerken o sütun boş bırakılırsa default değeri alıyor böylece. Şöyle bir şeydi sanırım: CREATE TABLE user ( ... soyad VARCHAR(30) DEFAULT 'Kamil' ); SQL standardınının içinde midir yoksa sadece bazı SQL sunucuları mı destekliyor hatırlamıyorum. Trigger için alıştırma olsun diye sormuşsan ayrı tabi. :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Misafir Guest Mesaj tarihi: Ocak 8, 2009 Paylaş Mesaj tarihi: Ocak 8, 2009 Mirage said: Tabloyu tanımlarken her sütun için default değer verebiliyorsun. Bir satır eklerken o sütun boş bırakılırsa default değeri alıyor böylece. Şöyle bir şeydi sanırım: CREATE TABLE user ( ... soyad VARCHAR(30) DEFAULT 'Kamil' ); SQL standardınının içinde midir yoksa sadece bazı SQL sunucuları mı destekliyor hatırlamıyorum. Trigger için alıştırma olsun diye sormuşsan ayrı tabi. :) evet böyle en mantıklısı triggerla kasmaya gerek yok. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Misafir Guest Mesaj tarihi: Ocak 8, 2009 Paylaş Mesaj tarihi: Ocak 8, 2009 aslinda triggerla kasmaya bazi ozel durumlarda gerek var. misal girilen veri null string de olabilircekse, default deger atanmayacagindan trigger kullanisli olacaktir. yani default degerler kullanilmali, fakat trigger ile ikinci bir onlem dusunulmesinde sakinca yok. ki triggerlar candir, canandir, kullanmak lazim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Misafir Guest Mesaj tarihi: Ocak 8, 2009 Paylaş Mesaj tarihi: Ocak 8, 2009 tabiki her duruma göre çözümler farklı olacaktır. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Misafir Guest Mesaj tarihi: Ocak 8, 2009 Paylaş Mesaj tarihi: Ocak 8, 2009 ödevde triggerla zorunluydu ondan illa trigger dedimdi :D Neyse yukarda yazdığım dooruymuş sağolun tavsiyeler için. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar