Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.



Benzer belgeler
EXISTS VE NOT EXISTS fonksiyonları

SQL TRIGGERS (Tetikleyiciler)

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Veri Tabanı ve Yönetimi

VERİ TABANI ve YÖNETİMİ

Tetikleyiciler (TRIGGER) Tetikleyiciler ne zaman kullanılırlar. Ardı Sıra Tetikleyiciler (After Triggers) Örnek

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

STORED PROCEDURE LER (Saklı Yordamlar)

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Öğr. Gör. Cansu AYVAZ GÜVEN VERİTABANI-II. Değişken Tanımlama Ve Akış Kontrol Deyimleri

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

TETİKLEYİCİ. Tetikleyici Ne Zaman Kullanılır? Çeşitli amaçlara uygun olarak tetikleyiciler kullanılabilir.

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

KULLANICI TANIMLI FONKSİYONLAR (Devam)

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

KULLANICI TANIMLI FONKSİYONLAR

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

«BM364» Veritabanı Uygulamaları

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

PostgreSQL ve PL/pgSQL

Oracle da kullanılan veri tipleri:

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

PostgreSQL ve PL/pgSQL

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

SQL Stored Procedure

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

SORGULAR. Öğr.Gör.Volkan Altıntaş

SQL Komutları (2) Uzm. Murat YAZICI

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

BİLİŞİM TEKNOLOJİSİNİN TEMELLERİ DERSİ

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

«BM364» Veritabanı Uygulamaları

YAPISAL SORGULAMA DİLİ (SQL)

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

VERİ TABANI ve YÖNETİMİ

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

DML işlemleri. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı May Öğr. Gör. Murat KEÇECĠOĞLU

SQL Kod ile Tablo Oluşturma

BMB202. Veritabanı Yönetimi Ders 8. Stored Procedure (Saklı Yordamlar), Trigger (Tetikleyiciler), Transactions, Yetkilendirme (Authorization)

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

15 Aralık 2011 / Perşembe.

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

1. Excel Dönüşümü : 2. Rapor Master Tanımları :

VERİTABANI. SQL (Structured Query Language)

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

Çok tablolu sorgulamalar

Öğr.Gör.Murat KEÇECĠOĞLU. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

VERİTABANI Veritabanı Yönetimi

MOBİL UYGULAMA GELİŞTİRME

SORGULAR VE ÇEŞİTLERİ II

ACCESS PLATFORMUNDA SQL

Veri Tabanı Programlamaya Giriş

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

VERİ TABANI YÖNETİM SİSTEMİ 2

İNTERNET PROGRAMCILIĞI DERSİ

Nesneler üzerinde değişiklik yapmak için kullanılır. Veri tabanındaki nesnelerin oluşturulabilmesi için CREATE komutu kullanılır.

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

1. GİRİŞ 2. YENİ TABLO EKLEME

Veritabanı Tasarımı. Veritabanı Hareketleri

Bölüm 4: DDL Veri Tanımlama Dili

Veritabanına Uygulanması

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Laboratuvar 2 Tek Kayıt Fonksiyonları

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Öğr.Gör.Murat KEÇECĠOĞLU 27 May. 28 May Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

BAYİLERİMİZE ÖZEL. 13 Ağustos İlgili Modül/ler : Genel. İlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL

Sayfa 1 / 8. Tabo yapıları

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Bölüm 7: Microsoft Transact - SQL

SQL Server genel olarak iki tip veritanını yönetmek için kurulur.

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

Veritabanında Saklı Yordamlar: Bir Veritabanı Tasarımı ve Web Uygulaması

KLAVYEDE TUŞLAR İMLEÇ NEDİR?

Mysql Veritabanı Komutları

«BM364» Veritabanı Uygulamaları

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

Transkript:

TRIGGER Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir. Herhangi bir tablo üzerinde yapılan, insert, update veya delete işlemi sonrasında otomatik olarak aynı tablo veya başka bir tabloda veri ekleme, veri silme veya veri değiştirme işlemi istendiğinde trigger kullanılır. Triggerlarla girilen veriler kontrol edilebilir. Uygun olmaya veri girildiğinde veri iptal edilebilir. Trigger çeşitleri after trigger : insert, update veya delete işleminden sonra çalışan triger dır. 1

İnstead of trigger : insert, update veya delete işleminden önce çalışır. Örnek: Satış tablosuna yeni veri girildiğinde çalışacak ve veri eklendi mesajı verecek bir trigger yazınız ve satış tablosuna veri girerek test ediniz. CREATE TRIGGER trg_satis_gir ON Satis -- satış tablosuna veri girildiğinde. AFTER insert -- veri girildiğinde çalışacak AS BEGIN PRINT Veri girildi END 2

SON EKLENEN, DEĞİŞEN veya SİLİNEN bilginin içeriğine erişmek. Trigger bu verilere erişmek için iki tane sanal tablo kullanır. inserted tablosu deleted tablosu bu tabloların içinde neler bulunur. inserted tablosunda: insert deyimi çalıştığında girilen değer update deyimi çalıştığında değiştikten sonraki veri bulunur. 3

deleted tablosu: delete deyimi çalıştığında silinen veri, update deyimi çalıştığında, değişmeden önceki veri bulunur. Bir başka şekilde daha izah edelim. bir tabloya insert deyimi ile veri girildiğinde, girilen veri inserted tablosunda bulunur. Bir tablodaki veri update deyimi ile değiştirildiğinde, verinin önceki hali deleted tablosunda, yeni hali inserted tablosunda bulunur. Bir tabloda delete deyimi ile veri silindiğinde silinen veri deleted tablosunda bulunur. İnserted ve deleted tabloların yapısı ile triggerın bağlı olduğu tablonun yapısı aynıdır. 4

CREATE TRIGGER trg_satis ON satis AFTER insert, update, delete AS BEGIN Select * from inserted Select * from deleted END Go 5

6

Örnek: Satis tablosuna veri girildiğinde çalışan bir trigger yazınız. Bu trigger girilen urun, ürün tablosunda yok ise bu kaydı iptal etsin. 7

CREATE TRIGGER trg_satis_gir ON Satis AFTER insert AS. Sql kodları. Go Trigger içindeki Sql kodlarını yazalım -- girilen ürün kodu değerinin -- atanacağı değişkeni tanımla DECLARE @urun_no varchar(10) -- bu değişkene girilen değeri atayalım SELECT @urun_no = UrunNo from inserted -- ürün tablosunda @urun_no varmı? IF NOT EXISTS (select * from urun where UrunNo=@urun_no) Rollback tran 8

Else Print Kayıt Yaptım Go 9

Yukarıdaki trigger, ürün yoksa ürün tablosuna bu ürün için kayıt açsın ALTER TRIGGER trg_satis_gir ON Satis AFTER insert AS -- girilen ürün kodu deðerinin -- atanacaðý deðiþkeni tanýmla DECLARE @urun_no varchar(10) -- bu deðiþkene girilen deðeri atayalým SELECT @urun_no = UrunNo from inserted -- ürün tablosunda @urun_no varmý? IF NOT EXISTS (select * from urun where UrunNo=@urun_no) 10

Else Go insert urun (UrunNo) values (@urun_no) Print 'Kayýt Yaptým' Satis tablosuna veri girildiğinde girilen ürün; ürün tablosunda varsa, girilen miktar kadar ürünü eksiltsin, yoksa yeni ürün kaydı açsın. 11

Örnekler: Örnek1: Satış tablosuna yeni veri girildiğinde çalışacak ve veri eklendi mesajı verecek bir trigger yazınız. CREATE TRIGGER trgsatisgir ON Satis AFTER INSERT AS BEGIN PRINT 'Bu Mesaj Trigger dan Gelmektedir. Satış Tablosuna Yeni Veri Eklendi' END Yukarıdaki trigger'ın çalışmasını sağlamak için Satis tablosuna veri giriniz. INSERT Satis (SipNo, UrunNo, Miktar,GirisCikis) values 12

(10,'E',1,0) Örnek 2: Örnek 1 deki triggerda, girilen verideki değeri bir değişkene aktarıp bu değişkenin değerini yazdırıcak şekilde yeniden düzenleyiniz. ALTER TRIGGER trgsatisgir ON Satis AFTER INSERT AS BEGIN -- Değişkenleri tanımlayalım DECLARE @SipNo int, @UrunNo char(4), @Miktar float, @GirisCikis tinyint -- Girilen kayıttaki bilgileri değişkene aktaralım 13

SELECT @SipNo=SipNo, @UrunNo=UrunNo, @Miktar =Miktar, @GirisCikis =GirisCikis FROM inserted -- Değişkenleri yazdıralım PRINT 'SipNo='+ltrim(str(@SipNo)) + ', UrunNo='+ @UrunNo + ', Miktar='+ltrim(str(@Miktar)) END -- str fonk, sayıyı metine dönüştürür -- ltrim : metinin solundaki boşlukları siler Yukarıdaki trigger'ın çalışmasını sağlamak için bir kaç tane farklı Satis tablosuna veri giriniz. 14

INSERT Satis (SipNo, UrunNo, Miktar,GirisCikis) values (270,'F',1,0) 15