Stored Procedure Öğr.Gör.Metin Akbulut.

Slides:



Advertisements
Benzer bir sunumlar
SQL - Structured Query Language
Advertisements

Stored Procedure Öğr.Gör.Metin Akbulut.
T sql-diğer komutlar Metin Akbulut.
SQL de Değişken Tanımlama
SQL Komutlar 5 Sibel SOMYÜREK.
Veri Tabanı Yönetim Sistemleri
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
SQL (STRUCTURED QUERY LANGUAGE)
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
SQL Dili ve MySQL Komutları
SQL Sibel SOMYÜREK.
SQL SERVER STORED PROCEDURE
SQL Komutları (2) Uzm. Murat YAZICI.
FONKSİYONLAR İbrahim Onur Sığırcı.
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Mühendisliği Bölümü
Bilgisayar Mühendisliği Bölümü
SİSTEM VERİTABANLARI. Sistem veritabanlarını tanıma. Kendi Login’imizi oluşturma Neler İşleyeceğiz?
Yeni Veritabanı Oluşturma
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı Arş. Gör. Pınar CİHAN.
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
PRODECURE, TRIGGER, INDEX, BACKUP
LUCA Bilgisayarlı muhasebe programı
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Veri Tabanı Yönetim Sistemleri 2 Ders 7 Paket ve Tetikleyiciler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
 Stored Procedure kısaca SQL sorgularını isteğimize göre hazırlayıp kullanıma hazır veri tabanı nesnesine çeviren bir araçtır.  Stored Procedure, Türkçeye.
Saklı Prosedürler (Stored Procedures) kalibi Create Procedure Procedure_Adi [Parametre_Listesi] As Procedure_Bloğu Create Proc Procedure_Adi [Parametre_Listesi]
BİLGİSAYAR PROGRAMLAMA DERSİ
BÖLÜM 9 VERİ TABANI NESNELERİ.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
Bilgisayar Mühendisliği Bölümü
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Transaction ve Örnekler
TETİKLEYİCİ ( Trigger)
TETİKLEYİCİLER ve HATA KONTROLÜ
14.DERS Örnekler, Sorular BUKET DOĞAN.
5. HAFTA Öğr. Gör. Yunus KÖKVER
Veri Kontrol Dili (DCL) DCL, bir veri tabanı ile ilişkili kullanıcıları ve rollerin izinlerini değiştirmek için kullanılır. Diğer bir deyişle verilere.
SQL SERVER STORED PROCEDURE
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Arduino Programlama Dili
Veri Tabanı Yönetim Sistemleri 2 Ders 7 Paket ve Tetikleyiciler
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Bilimi Koşullu Durumlar.
SQL (STRUCTURED QUERY LANGUAGE)
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
SQL Server - Triggers.
NİŞANTAŞI ÜNİVERSİTESİ
SQL Server - Stored Procedures
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
SQL Server - Views.
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
NİŞANTAŞI ÜNİVERSİTESİ
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
SQL VIEW.
Sunum transkripti:

Stored Procedure Öğr.Gör.Metin Akbulut

Stored Procedure Bir amaca ulaşmak için takip edilen yol ve yöntem tanımından yola çıkarak bir prosedür, herhangi bir işlevi yerine getirmek için yazılan kodların bir paket içerisinde tutulmuş hali demektir.

sıkça yapılan işlemlerin bir defa yazılarak program akışına göre tekrar tekrar kullanılmasını sağlamaktır. Extended Stored Procedure CLR Stored Procedure System Stored Procedure

Stored Procedure Oluşturmak Stored Procedure’ün oluşturulma şekli aşağıdaki gibidir. CREATE PROC [ EDURE ] prosedür_adı AS T-SQL ifadeleri GO

Veri tabanınızın Programmability klasörünün solundaki + işaretine tıkladığınızda açılan Stored Procedures klasörü üzerinde farenizle sağ tıklayınız. Yeni bir Stored Procedure oluşturabilmeniz için New Stored Procedure komutunu tıklatınız

EXEC komutu oluşturduğunuz Stored Procedure’ü çalıştıracak olan komuttur. EXEC’ten sonra yazılan ifade ise oluşturduğunuz Stored Procedure’ün adıdır. Yazdığınız bu Query’i çalıştırarak (F5) sonucu görebilirsiniz.

Derleme Bir Stored Procedure’de çok fazla değişiklikler yapılıyorsa EXEC komutuyla çalıştırılırken yeniden derlenmesi istenebilir. Bunun için, RECOMPILE kullanılmalıdır. Örnek: EXEC UNotlar WITH RECOMPILE

Stored Procedure’ü Silmek Var olan bir Stored Procedure’ü silmek için DROP komutunu kullanmak gereklidir. DROP komutundan sonra Stored Procedure’ün sahibinin adı ve Stored Procedure’ün adı yazılmalıdır. Genel Kullanımı DROP PROC sahip.prosedür_adı Örnek: DROP PROC dbo.UNotlar

Değer Alan Stored Procedure’ler Stored Procedure’lerin daha etkin kullanılabilmesi ve işlevsel bir hale gelebilmesi için dışarıdan değer almalarına ihtiyaç duyulur. Bu nedenle girdi parametreleri (Input parameter) kullanılır.

Bir öğrenciye ait 3 not bilgisi Query’de ilk değerleri atanarak not ortalamaları hesaplanacaktır.

Hesaplamaların yapılacağı Stored Procedure’ü yazmak için yeni bir Query sayfası açınız. Stored Procedure’ün adını “UHesapla” olarak belirterek ortalamayı karşılayacak değişkeni tanımlayınız ve başarının belirleneceği “if” yapısını yazınız.

uygulama1 SELECT * FROM Laptop CREATE PROCEDURE uspLaptop AS GO EXEC uspLaptop --veya sadece uspLaptop

uygulama2 CREATE PROCEDURE uspProduct @Maker varchar(10) =NULL /*‘hata’*/ AS SELECT * FROM Product WHERE Maker = @Maker GO EXEC uspProduct @Maker = 'B'

uygulama3 CREATE PROCEDURE usptype2 @model varchar(50) = NULL, @type varchar(50) =NULL AS SELECT * FROM product WHERE type =isnull(@type ,'typeyaz') AND model LIKE '%' + ISNULL(@model ,'modelyaz') + '%' GO EXEC usptype2 @model = '11', @type = 'pc'

Procedure silme DROP PROCEDURE usptype GO -- veya DROP PROC usptype – veya DROP PROC dbo.usptype

Çoklu silme DROP PROCEDURE usptype1, usptype2, usptype3 GO -- veya DROP PROC usptype1, usptype2, usptype3

Procedure değişiklik ALTER PROCEDURE [dbo].[usptype] --null vermek zorundayız(Açıklama örnek) @type varchar(50) =NULL AS SELECT * FROM product WHERE type LIKE @type + '%'

İf IF Koşul BEGIN PRINT 'Koşulumuz doğru' -- SELECT,UPDATE... -- END ELSE PRINT 'Koşulumuz yanlış' -- SELECT,UPDATE... –

CREATE PROCEDURE [dbo] CREATE PROCEDURE [dbo].[DeleteEmployee] @EmployeeId uniqueidentifier -- SP Parametremiz -- AS BEGIN DECLARE @Count int -- EmployeeId id'li kişinin kaç kişinin amiri olduğunu tutan sayacımız -- DECLARE @ReturnBool bit -- Döndüreceğimiz boolean tipi 0 veya 1 -- SELECT @Count = COUNT(*) FROM Employee WHERE DirectorId = @EmployeeId -- Kişi amir pozisyonunda mı? -- IF @Count <= 0 -- Kişi herhangi bir kişinin amiri değilse yani sayaç değerimiz 0'a eşit veya küçükse -- BEGIN DELETE FROM Employee WHERE EmployeeId = @EmployeeId -- Kişi silinir -- SET @ReturnBool = 1 -- Dönüş değeri 'true' yapılır -- SELECT @ReturnBool -- Değer döndürülür -- END ELSE -- Kişi bir kişinin amiri ise -- SET @ReturnBool = 0 -- Kişi silinmez ve dönüş değeri 'false' yapılır -- END

Intersect and Except

TRIGGER Trigger’lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama öğeleridir. Trigger tanım olarak da tetikleyici anlamındadır. İki tip trigger vardır. DML Trigger Her hangi bir tablo üzerinde yapılan insert, update, delete işlemi öncesinde veya sonrasında otomatik olarak aynı veya başka bir tabloda veri ekleme, veri değiştirme veya veri silme işlemi yapılmak istendiğinde kullanılır. DDL Trigger Veritabanı üzerinde tablo veya diğer nesneler üzerinde create, alter, drop ifadelerinden sonra tetiklenen triggerlardır

AFTER(ya da FOR) => Bu trigger’lar tetiklendiğinde işlem gerçekleşmiş demektir. Yani yazdığımız trigger ‘after delete’ şeklindeyse, o tablo üzerinde data silindikten sonra bu trigger devreye girer. INSTEAD OF => Bu trigger’lar tetiklendiğinde işlem gerçekleşmemiştir. Yani yazdığımız trigger ‘instead of delete’ şeklindeyse, o tablo üzerindeki kayıt silme işlemi yerine, bu trigger devreye girecektir.

Delete trigger Create trigger [dbo].[satisIptalEt] on [dbo].[PC] after delete as begin INSERT INTO pcsilinen select * from deleted end

Update trigger ALTER trigger [dbo].[pcguncelle] on [dbo].[PC] after update as begin INSERT INTO pceklenen SELECT code,model,GETDATE() FROM inserted end

Insert trigger ALTER TRIGGER [dbo].[PasifYap] ON [dbo].[PC] INSTEAD OF DELETE AS UPDATE P SET Aktif=0 FROM Pc P JOIN deleted D ON P.code=D.code

ALTER TRIGGER [dbo]. [PasifYap] ON [dbo] ALTER TRIGGER [dbo].[PasifYap] ON [dbo].[PC] INSTEAD OF DELETE AS UPDATE P SET Aktif=0 FROM Pc P JOIN deleted D ON P.code=D.code

DISABLE - ENABLE TRIGGER Oluşturulan triggerlarin bir süre durdurulması (pasif edilmesi) istenirse DISABLE TRIGGER trg_adi --on database Tekrar aktif etmek için ise ENABLE TRIGGER trg_adi --on database

DDL Triggerlar CREATE TRIGGER tablosilmeengeller ON DATABASE --[ON ALL SERVER / ON DATABASE] /*Veritabanı seviyesinde geçerli bir trigger*/ FOR DROP_TABLE AS PRINT 'Silme işlemi iptal edildi' ROLLBACK

triggeri veritabanından silmek DROP TRIGGER tablosilmeengeller ON DATABASE