I. STORED PROCEDURE
SQL Server'daki Stored procedure'lar aynı diğer programlama dillerindeki procedure'lara benzer. SQL deyimlerini içeren komut doayaları hazırlanır ve sunucu üzerinde saklanır.
Stored procedure aracılığıyla şu işlemler yapılablir:
- Input parametrelerini kabul ederek ve birçok değerin geri dönmesini sağlar.
- Database içindeki işlemleri yapmak için programlama deyimleri içerir.
Stored procedure'lar genellikle rutin hale gelmiş işleri kolayca yapmak için geliştirilirler. SQL deyimleriyle yazılan stored procedure'lar sadece ilk kez çalıştırıldıklarında derlenirler. Daha sonraki çalıştırma işlemlerinde derlenmezler ve böylece hızlı bir biçimde çalışma sağlanmış olur.
Örnek bir stored procedure tasarımı:
USE Northwind
GO
CREATE PROC pahali_kitaplar
AS
SELECT *
FROM products
WHERE unitprice > 30
GO
Stored procedure'ı Çalıştırma:
EXEC pahalı_kitaplar
Bir SQL Server stored procedure'ı CREATE PROCEDURE deyimi ile oluşturulur. İstenirse daha sonra ALTER PROCEDURE deyim ile değiştirilir. Bir stored procedure yaratma deyimi tek bir batch olarak düzenlenir. Diğer bir deyişle diğer SQL deyimleriyle aynı batch içinde yer alamaz.
Kullanım Biçimi:
CREATE PROC[EDURE] procedure_adı[;sayı]
[
{@parameter data_tipi}[VARYING] [= varsayım] [OUTPUT]
]
[,...n]
[WITH
{
RECOMPILE
| ENCRYPTION
| RECOMPILE, ENCRYPTION
}
]
[FOR REPLICATION]
AS
sql_deyimleri [...n]
Örnekler:
Aşağıdaki stored procedure ile sadece belirtilen yazarın bilgileri ve kitapları listelenir.
USE pubs
GO
CREATE PROCEDURE yazar
@lastname varchar(40),
@firstname varchar(20)
AS
SELECT au_lname, au_fname, title, pub_name
FROM authors a INNER JOIN titleauthor ta
ON a.au_id = ta.au_id INNER JOIN titles t
ON t.title_id = ta.title_id INNER JOIN publishers p
ON t.pub_id = p.pub_id
WHERE au_fname = @firstname
AND au_lname = @lastname
GO
Çalıştırılması:
EXECUTE yazar 'White, 'Jhonson'
Ayrıca aşağıdaki biçimde de çalıştırılabilir:
EXECUTE yazar @lastname = 'White', @firstname = 'Johnson'
Bir stored procedure'ı işletmek için Transact-SQL EXECUTE deyimi kullanılır. Bunun dışında eğer stored procedure'ın parametresi varsa o da EXECUTE deyimi ile belirtilir.
EXECUTE (T-SQL) Deyimi
Bir stored procedure'ı işletmek için EXECUTE deyimi kullanılır:
Kullanım Biçimi:
[[EXEC[UTE]]
{
{procedure_adı[;sayı] | @procedure_adı_değişkeni
}
[[@parameter =] {değer| @değişken [OUTPUT] | [DEFAULT]]
[,...n]
[WITH RECOMPILE]
Örnekler:
Aşağıdaki örnekte bir komut işletilir:
USE master
EXECUTE xp_cmdshell 'dir *.exe'
Aşağıdaki örnekte ise bir stored procedure parametre ile çağırılarak çalıştırılır:
EXECUTE yazar 'White, 'Jhonson'