Stored procedures jane nje pjese e rendesishme e SQL Server. Ne to inkapsulohet nje pjese e rendeishme e llogjikes se biznesit me te dhenat.
Nje stored procedure eshte nje grup komandash SQL i parakompiluar , dhe qe ruhet ne database (nen nyjen "Stored Procedures" ). Programuesit apo administratoret e database mund ti therrasin ne ekzekutim procedurat nga SQL Server Management Studio or from within an application as required.
Te mirat e Stored Procedurave
Te mirat
Shpjegim
Programim Modular
E shkruajme njehere nje stored procedure dhe e perdorim sa here na duhet ne nje aplikacion
Performance
Stored procedures ofrojne ekzekutim me te shpejte te kodit dhe reduktojne trafikun e rrjetit
Siguria
Perdoruesit aksesojne objektet e DB nepermjet nje menyre me te kontrolluar
Si te krijojme nje Stored Procedure
Komanda SQL per krijimin e nje stoered procedure eshte
CREATE PROCEDURE StoredProcedureName AS
...
Shembulli me poshte krijon nje procedure: "MyStoredProcedure":
CREATE PROCEDURE MyStoredProcedure AS
SET ROWCOUNT 10
SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
FROM Products
ORDER BY Products.UnitPrice DESC
Pasi kemi krujar proceduren ajo gjendet nen nujen Programability - Stored Procedures ne Object Explorer.
Si te modifikojme nje Stored Procedure
Mund ta fshijme dhe rikrijojme ose mund te perdorim komanden ALTER.
ALTER PROCEDURE MyStoredProcedure AS
...
Si te ekzekutojme nje Stored Procedure
Nje stored procedure mund te therritet ne executim nepermjet komandes EXECUTE ose EXEC. Psh:
EXEC MyStoredProcedure
Nese emri i procedures ka hapesira boshe midis atehee emri i saj duhet vendosur brenda thonejzave dyshe:
EXEC "My Stored Procedure"
Nese procedura merr argumenta ata vendosen pas emrit te procedures:
Per te punuar me nje procedure ndiqni hapat e meposhtem:
Shkoni tek stored procedure ne bazen Tuaj te te dhenave nen Object Explorer ne SSMS
Klikoni me te djathetn mbi proceduren e duhur dhe zgjidhni "Execute Stored Procedure...":
3. Do te hapet nje dritare dialogu. Futni parametrat qe pret procedura:
4. Klikoni "OK
5. SQL Server do te gjeneroje kodin SQL dhe do te ekzekutoje stored procedure:
Parametrat
Nje parameter eshte nje vlere qe perdor procedura per te kryer funksionet e saj. Kur shkruani nje procedure, mund te percaktoni cilet parametra duhen vendosur nga perdoruesi. Per shembull, nese shkruani nje procedure per te perzgjedhur adresen e nje personi , procedura duhet te dije adresen e cilit individ duhet te ktheje. Ne kete rast , perdoruesu mund ti jape procedures si parameter nje UserId per ti treguar procedures adresen e cilit person deshiron.
Shembuj
shembull 1
-- krijojme njE procedure qe kthen emrin e nje punonjesi
CREATE PROCEDURE EMRI
(
@kodi INT,
@emri varchar(100) OUTPUT
)
AS
BEGIN
DECLARE @e as varchar(100)
SELECT @e=Firstname+' '+Lastname from Employees
where EmployeeID=@kodi
-- si e kthejme emrin e punonjesit
SELECT @emri=@e
END
shembull 2
DECLARE @doc xml
SET @doc = '<?xml version="1.0" ?>
<Order EmployeeId="2" CustomerId="ALFKI" >
<OrderDetails>
<Product ProdId="1" Quantity="6" Price="100"/>
<Product ProdId="2" Quantity="4" Price="245"/>
<Product ProdId="3" Quantity="4" Price="100"/>
</OrderDetails>
</Order>'
exec dbo.shtoporosi @doc
CREATE PROCEDURE shtoporosi
(@docxml as xml)
AS
BEGIN
BEGIN TRANSACTION neworder
Declare @oid as int
Declare @a as int
exec sp_xml_preparedocument @a OUTPUT,@docxml
INSERT INTO Orders(EmployeeId,CustomerId)
select EmployeeId,CustomerID from
OPENXML(@a,'Order',1)
WITH
(
EmployeeId INT '@EmployeeId',
CustomerId VARCHAR(10) '@CustomerId'
)
select @oid=@@IDENTITY
insert into [Order Details](OrderId,ProductId,UnitPrice,Quantity )