SQLde Saklı Yordamlar | Genel Bakış

Bu blogda, bir kod kümesini kaydetmek ve ihtiyacınız olduğunda tekrar tekrar kullanmak için kullanabileceğiniz SQL'deki saklı yordamları tartışacağız. Saklı yordamlar görünümlere benzer. Ancak view ile gerçekleştiremediğiniz DROP, TRUNCATE, DELETE gibi yaygın tablo işlemlerini saklı yordamlar ile gerçekleştirebilirsiniz .

Saklı yordamlar ayrıca görünümlerden daha hızlı çalışacak şekilde önceden derlenir. Ayrıca veritabanı sunucusuna gönderilen veri miktarını da en aza indirir.

İçindekiler

SQL'de Saklı Yordamlar İçin Sözdizimi: Parametresiz

Parametresiz bir saklı yordam oluşturmak için CREATE işleviyle başlamanız gerekir . Ardından PROC işlevini ekleyin, hemen arkasına prosedür adını yazın ve AS işlevini ekleyin.

SQL'de Saklı Yordamlar |  Genel Bakış

saklı yordam oluşturmak, tablolar ve görünümler oluşturmaya benzer. Ancak, fark veri alma sürecindedir.

Örneğin, bir görünümden veri almak istiyorsak, " SELECT * FROM görünüm_adı " kullanırız. Saklı yordamlar için ise "execute" anlamına gelen EXEC'i kullanırız ve ardından saklı yordamın adını yazarız .

SQL'de Saklı Yordamlar |  Genel Bakış

Bir saklı yordam yürüttüğümüzde , eklediğiniz talimatlara veya komutlara dayalı bilgileri de getirir.

SQL'de Saklı Yordamlar İçin Sözdizimi: Parametreli

geçelim . İşlem, gösterdiğim önceki örneğe benzer. Tek fark, parametreleri AS işlevinden önce ve ayrıca veri türünü hemen sonra eklemeniz gerekmesidir .

SQL'de Saklı Yordamlar |  Genel Bakış

Komutlarınızda saklı yordamın oluşturulmasında bildirdiğiniz parametreyi de kullanabilirsiniz. Bu, birden fazla değer girerek zamandan tasarruf etmeniz içindir. Örneğin, müşteriKimliği1 , müşteriKimliği2 vb.'yi manuel olarak yazmak yerine, uzun bir kod kümesine sahip olmamak için @custid veya parametresini kullandık.

SQL'de Saklı Yordamlar |  Genel Bakış

Lütfen bir parametre kullanırken veya eklerken @ sembolünü kullanmanın önemli olduğunu unutmayın . Ayrıca, yalnızca bir değil, istediğiniz kadar çok parametre ekleyebilirsiniz. Saklı yordamları parametrelerle bu şekilde yürütürüz.

SQL'de Saklı Yordamlar |  Genel Bakış

Fark edebileceğiniz gibi, saklı yordamı yürütürken 1'e eşit bir parametreyi de kullandık . Bu sadece custid1 bilgisini getirecektir .

SSMS'de Saklı Prosedürlerin Örnek Senaryosu

SQL'de saklı yordamlara daha fazla örnek verelim. İlk örnekte, aşağıda vurgulanan komutu kullanarak örnek bir saklı yordam oluşturacağım.

SQL'de Saklı Yordamlar |  Genel Bakış

Bir saklı yordam oluştururken adlandırma kuralı için, bunun bir saklı yordam olduğunu belirtmek için genellikle "usp" veya "sp" kullanırız. "usp"nin ne anlama geldiğini merak ediyorsanız, kullanıcı tanımlı saklı yordam anlamına gelir. 

Ardından, saklı yordamın yürütüldüğünde işlemesi için sorgular yazacağız.

SQL'de Saklı Yordamlar |  Genel Bakış

Önceki örnekteki sorgular, dbo.stageOrders adlı tabloyu kaldıracaktır . Ardından, Sales.SalesOrderHeader tablosundaki verilerle dbo.stageOrders'ı yeniden oluşturur . 

Aşağıdaki kodu vurgulayarak ve Yürüt düğmesine tıklayarak bu saklı yordamı oluşturalım .

SQL'de Saklı Yordamlar |  Genel Bakış

Bundan sonra, böyle bir mesaj görmelisiniz.

SQL'de Saklı Yordamlar |  Genel Bakış

O zaman şimdi EXEC usp_TEST'i çalıştırarak saklı yordamı yürüteceğiz .

SQL'de Saklı Yordamlar |  Genel Bakış

usp_TEST saklı yordamının yürütülmesi üzerine , dbo.stageOrders artık Sales.SalesOrderHeader'dan gelen verilere sahip olmalıdır . Aşağıdaki komutu çalıştırarak dbo.stageOrders içeriğini kontrol edelim .

SQL'de Saklı Yordamlar |  Genel Bakış

Sonuç olarak bunlar, saklı yordamımıza eklediğimiz komutlara dayalı olarak dbo.stageOrders içinde oluşturduğumuz verilerdir .

SQL'de Saklı Yordamlar |  Genel Bakış

İkinci Örnek Senaryo

Başka bir örneğe geçelim. Bu sefer dbo.stageOrders tablosunu bırakıp Sales.SalesOrderHeader tablosundan gelen verilerle aynı tabloyu yeniden oluşturmak istemiyorum .

Bunun yerine, " usp_TEST " saklı yordamını her çalıştırdığımda Sales.SalesOrderHeader tablosundaki verilerin görüntülenmesini istiyorum .

Bunu gerçekleştirmek için, ALTER deyimini kullanarak son oluşturulan saklı yordamda değişiklik yapmam gerekiyor.

SQL'de Saklı Yordamlar |  Genel Bakış

Bu örnekte, saklı yordamımızı değiştirmek için kullanılan ALTER deyimini kullandık . Bunu görünümlere ve tablolara da uygulayabilirsiniz. Yukarıdaki ekran görüntüsündeki kodu çalıştırdığımızda, saklı yordamımız tarafından işlenecek sorguları değiştirmelidir.

Bu sefer, daha önce yaptığımız gibi herhangi bir tabloyu yeniden oluşturmayacak. " usp_TEST " yürütürsek , yalnızca Sales.SalesOrderHeader tablosundaki verileri getirecektir .

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de Saklı Yordamlar |  Genel Bakış

Üçüncü Örnek Senaryo

Başka bir örnek yapalım. Bu sefer, SSMS'de bir saklı yordam yaratmaya ilişkin ilk örneğimizde sahip olduğumuz dbo.stageOrders tablosunu yeniden kullanacağız . Bu örnekle dbo.stageOrders tablosunu seçerek başlayacağız

SQL'de Saklı Yordamlar |  Genel Bakış

dbo.stageOrders'tan tüm veriler seçildiğinde sonuçlar bu şekilde olmalıdır.

SQL'de Saklı Yordamlar |  Genel Bakış

Şimdi usp_TEST komutunu çalıştırarak dbo.stageOrders tablosunu boşaltalım . Bunu aşağıdaki komutu ekleyerek yapabiliriz.

SQL'de Saklı Yordamlar |  Genel Bakış

TRUNCATE TABLE komutunu ekledikten sonra usp_TEST dosyasını güncellememiz gerekiyor .

SQL'de Saklı Yordamlar |  Genel Bakış

Bundan sonra, Komutların başarıyla tamamlandığını belirten bir mesaj görüntülenmelidir. Sonra usp_TEST'i tekrar çalıştıracağız .

SQL'de Saklı Yordamlar |  Genel Bakış

usp_TEST yürütüldüğünde , Sales.SalesOrderHeader'daki tüm kayıtları gösterecek ve ayrıca dbo.stageOrders tablosunu boşaltacaktır. 

SQL'de Saklı Yordamlar |  Genel Bakış

dbo.stageOrders tablosunun boş olup olmadığını kontrol etmek için aşağıdaki komutu kullanarak tabloyu seçip çalıştırmamız gerekiyor.

SQL'de Saklı Yordamlar |  Genel Bakış

Yukarıdaki kodu çalıştırdığımızda dbo.stageOrders tablosunun artık boş olduğunu görebiliriz. Bunun nedeni, usp_TEST'i güncellemek için kullandığımız TRUNCATE TABLE komutudur .

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de Kaydedilmiş Saklı Prosedürlerin Konumu

SQL'de saklı yordamın nereye kaydedildiğini görmek istiyorsanız , sol taraftaki Nesne Gezgini paneline gidin ve üzerinde çalıştığınız veritabanının önündeki “ + ” simgesine tıklayın.

SQL'de Saklı Yordamlar |  Genel Bakış

Ardından Programlanabilirlik'e sağ tıklayın ve Yenile'yi seçin .

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de Saklı Yordamlar |  Genel Bakış

“ + ” simgesine tıklayarak Programlanabilirlik klasörünü veya grubunu genişletin . Ardından aynı adımı uygulayarak Saklı Yordamlar grubunu genişletin. Saklı Yordamlar grubunun içinde dbo.usp_TEST görmelisiniz .

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de belirli bir saklı yordamın hangi komutları veya sorguları gerçekleştirdiğini kontrol etmek isterseniz , bir saklı yordama sağ tıklayıp aşağıdaki ekran görüntüsündeki adımları izleyebilirsiniz.

SQL'de Saklı Yordamlar |  Genel Bakış

Bundan sonra, saklı yordamı, içinde verilen komutları görebileceğiniz farklı bir sekmede açacaktır. Açıldığında dbo.usp_TEST böyle görünüyor.

SQL'de Saklı Yordamlar |  Genel Bakış

Gördüğünüz gibi, CREATE ifadesinden önce bazı varsayılan komutlar var. İsterseniz bunu silebilirsiniz. 

SQL'de Saklı Yordamlar |  Genel Bakış

Artık SQL'de bir saklı yordamın hangi komutları gerçekleştirdiğini nasıl kontrol edeceğinizi biliyorsunuz .

Parametrelerle SQL'de Saklı Prosedür Oluşturma

Ardından, parametrelerle bir saklı yordam oluşturacağız . Örneğin, yeni bir saklı yordam oluşturmak için aşağıdaki kodu kullanacağız.

SQL'de Saklı Yordamlar |  Genel Bakış

Örnek kodda, usp_GetCustomer adlı bir saklı yordam oluşturmak için aynı işlemi kullandım . Ardından , giriş türü INT olan @CustomerID olan bir parametre ekledim .

Saklı yordam oluştururken bir parametre ekledikten sonra, bir komutu yürüteceğiniz her zaman bir parametre sağlamanız gerektiğini unutmayın.

Bir parametre sağlamadan usp_GetCustomer'i çalıştırırsak ne olacağını görelim .

SQL'de Saklı Yordamlar |  Genel Bakış

usp_GetCustomer parametresiz çalıştırıldığında bir hata mesajı geldi. usp_GetCustomer'ı bir parametre ile yürütürsek bu şekilde görünür .

SQL'de Saklı Yordamlar |  Genel Bakış

Sağlanan bir parametre ile saklı yordamımızı yürütürken uygun bir sonuç elde edebiliyoruz .

Varsayılan Değerle Saklı Prosedür Oluşturma

Bir parametreyle saklı yordamı yürütürken bir hata iletisi almaktan kaçınmak istiyorsanız, varsayılan parametre olarak hizmet verecek bir varsayılan değer ayarlayabilirsiniz.

Örneğin, usp_GetOrdersByYear adında bir saklı yordam oluşturacağız .

Ardından, giriş türü “ INT ” olan ve varsayılan değeri 2011'e eşit olan bir @OrderYear parametresi ekleyeceğim .

SQL'de Saklı Yordamlar |  Genel Bakış

Sağlanan bir parametre olmadan usp_GetOrdersByYear'ı çalıştırırsak , 2011 yılı ile kayıtları gösterecektir .

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de Saklı Yordamlar |  Genel Bakış

Öte yandan, usp_GetOrdersByYear'ı 2014 ile belirli bir parametre olarak çalıştırırsak , 2014 yılı ile kayıtları göstermelidir .

SQL'de Saklı Yordamlar |  Genel Bakış

SQL'de Saklı Yordamlar |  Genel Bakış

Günlük veri yönetimi görevlerinizde saklı yordamları bu şekilde kullanırsınız .

SQL Toplama İşlevlerinde HAVING Cümlesi
ISNULL Case İfadelerinde SQL İşlevi
OFFSET ve FETCH Kullanarak SQL Veri Çıkarma

Çözüm

Her şeyi göz önünde bulundurarak, SQL'de bir saklı yordamın ne olduğunu ve amacını öğrendiniz. Mevcut bir saklı yordamda değişiklik veya güncelleme yapmak için kullanılan ALTER deyimini de ele aldık .

Ek olarak, SQL'de saklı yordamlar oluşturmak için farklı yöntemler olduğunu öğrendiniz ve bir saklı yordam yürütülürken varsayılan bir değer sağlayarak hata almayı nasıl önleyeceğinizi öğrendiniz.

En önemlisi, uzun kod kümelerini tekrar tekrar çalıştırmaktan kaçınmak için komut kümelerini depolamak için saklı yordamları kullanmayı öğrendiniz. Son bir hatırlatma olarak, bir parametre sağlarken “ @ ” sembolünü kullanmayı unutmayınız .

Herşey gönlünce olsun,

Hafız

Leave a Comment

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutunu Küçültmek için 6 Etkili Yöntem. Hızlı ve kolay yöntemler ile verilerinizi kaybetmeden yer açın.

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Python'da Self Nedir: Gerçek Dünyadan Örnekler

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

R'de bir .rds dosyasındaki nesneleri nasıl kaydedeceğinizi ve yükleyeceğinizi öğreneceksiniz. Bu blog aynı zamanda R'den LuckyTemplates'a nesnelerin nasıl içe aktarılacağını da ele alacaktır.

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

Bu DAX kodlama dili eğitiminde, GENERATE işlevinin nasıl kullanılacağını ve bir ölçü başlığının dinamik olarak nasıl değiştirileceğini öğrenin.

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

Bu eğitici, raporlarınızdaki dinamik veri görselleştirmelerinden içgörüler oluşturmak için Çok Kanallı Dinamik Görseller tekniğinin nasıl kullanılacağını kapsayacaktır.

LuckyTemplatesda İçeriği Filtrelemeye Giriş

LuckyTemplatesda İçeriği Filtrelemeye Giriş

Bu yazıda, filtre bağlamından geçeceğim. Filtre bağlamı, herhangi bir LuckyTemplates kullanıcısının başlangıçta öğrenmesi gereken en önemli konulardan biridir.

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Apps çevrimiçi hizmetinin çeşitli kaynaklardan oluşturulan farklı raporların ve içgörülerin yönetilmesine nasıl yardımcı olabileceğini göstermek istiyorum.

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

LuckyTemplates'da ölçü dallandırma ve DAX formüllerini birleştirme gibi teknikleri kullanarak kâr marjı değişikliklerinizi nasıl hesaplayacağınızı öğrenin.

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

Bu öğreticide, veri önbelleklerini gerçekleştirme fikirleri ve bunların DAX'ın sonuç sağlama performansını nasıl etkilediği tartışılacaktır.