Prosedür Nedir?
Prosedür, bir işlevi yerine getirmek için yazılan kodların bir paket içerisinde tutulmuş halidir.
View ile Prosedür arasındaki fark?
View dışarıdan parametre alamaz, prosedür alabilir.
View içerisinde sadece sonuç kümesi döndürecek kodlar yazılır.
Prosedür Neden Oluşturulur?
Sıkça yapılan işlemlerin bir defa yazılarak program akışına göre tekrar tekrar kullanılmasını sağlamak amacı ile oluşturulur.
Prosedür Neden Tercih edilir?
Performansı arttırır.
İlk kez çalıştırıldığında derleme yapılır. Daha sonra çalıştırıldığında derlenmiş hali çalıştırıldığından kod oldukça hızlı çalışır.
Prosedür Nasıl Oluşturulur?
Çalıştırmak için:
Prosedür üzerinde değişiklik yapmak için ALTER, silmek için DROP komutlarını kullanacağız.
Örnek:
Örnek:
Bir Procedure Örneği
Soru: Kayıt eklemeden ilgili tabloya gidip ürün var mı diye kontrol edilecek. Ürün mevcutsa IDsini geri döndürecek. Ürün mevcut değilse kayıt işlemi gerçekleştirilecek.
SCOPE_IDENTITY() ile ilgili:
Açılmış olan bağlantıda ve sorgunun çalıştığı scopeta son üretilen identityyi döndürür.
Prosedür, bir işlevi yerine getirmek için yazılan kodların bir paket içerisinde tutulmuş halidir.
View ile Prosedür arasındaki fark?
View dışarıdan parametre alamaz, prosedür alabilir.
View içerisinde sadece sonuç kümesi döndürecek kodlar yazılır.
Prosedür Neden Oluşturulur?
Sıkça yapılan işlemlerin bir defa yazılarak program akışına göre tekrar tekrar kullanılmasını sağlamak amacı ile oluşturulur.
Prosedür Neden Tercih edilir?
Performansı arttırır.
İlk kez çalıştırıldığında derleme yapılır. Daha sonra çalıştırıldığında derlenmiş hali çalıştırıldığından kod oldukça hızlı çalışır.
Prosedür Nasıl Oluşturulur?
Kod:
CREATE PROC prosedür_adı
AS
T-SQL ifadeleri
Çalıştırmak için:
Kod:
EXECUTE prosedür_adı
Örnek:
Kod:
CREATE PROC GetProductCategory
AS
SELECT ProductName, CategoryName
FROM Products as p
JOIN Categories as c
ON c.CategoryID = p.CategoryID
execute GetProductCategory
Örnek:
Kod:
CREATE PROC GetProductById
(
@id int
)
AS
SELECT * FROM Products WHERE ProductID = @id
execute GetProductById 2
Bir Procedure Örneği
Soru: Kayıt eklemeden ilgili tabloya gidip ürün var mı diye kontrol edilecek. Ürün mevcutsa IDsini geri döndürecek. Ürün mevcut değilse kayıt işlemi gerçekleştirilecek.
Kod:
create proc InsertProduct
(
@productname nvarchar(40),
@unitprice money,
@unitsInstock int
)
as
declare @productId int
if exists (select * from Products where ProductName=@productname)
begin
select @productId=ProductID from Products where ProductName=@productname
print('Eklemek İstediğiniz '+@productname +' adlı ürünün ID''si '+cast(@productID as nvarchar(5)))
end
else
begin
insert into Products (ProductName,UnitPrice,UnitsInStock) values (@productname,@unitprice,@unitsInstock)
set @productId=SCOPE_IDENTITY()
return @productId
end
exec InsertProduct 'Bilgisayar', 3000, 12
SCOPE_IDENTITY() ile ilgili:
Açılmış olan bağlantıda ve sorgunun çalıştığı scopeta son üretilen identityyi döndürür.