SQL PROCEDURE MACERASI -3
İşin aslı yukarıdaki kodlara göre hiçbir şekilde anlayamaz çünkü OUTPUT değişkeni ya da buna bağlı bir PRINT işlemi yapmadık.
O zaman…
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
— =============================================
— Author: Burak SEKERCIOGLU
— Create date: 12/05/2011
— Description: SP TEST-3
— =============================================
CREATE PROCEDURE sp_test (@kod1 int, @kod2 int)
AS
<strong>DECLARE @hatakod int</strong>
BEGIN
SET NOCOUNT ON;
if @kod1=1
begin
if not exist (select * from test_tablomuz Where alan1=@kod1 and alan2=@kod2)
begin
Insert into test_tablomuz (alan1,alan2) values (@kod1,@kod2)
End
Else
Begin
Set @hatakod=1 /*test_tablomuz üzerinde aynı kayıt var */
Return @hatakod /*oluşan hata kodu yazılıma gönderiliyor */
End
end
if @kod1=2
begin
if not exist (select * from test_tablomuz2 Where alan1=@kod1 and alan2=@kod2)
begin
Insert into test_tablomuz2 (alan1,alan2) values (@kod1,@kod2)
end
Else
Begin
Set @hatakod=2 /*test_tablomuz üzerinde aynı kayıt var */
Return @hatakod /*oluşan hata kodu yazılıma gönderiliyor */
End
end
END
GO
Gördüğünüz gibi
Else
Begin
Set @hatakod=1 /*test_tablomuz üzerinde aynı kayıt var */
Return @hatakod /*oluşan hata kodu yazılıma gönderiliyor */
End
Alanında şartın sağlanmadığı durumlar ELSE .. Begin – End bloğunda tanımlanırken bu tanım içersine de Set @hatakod=1 tanımlanarak bu değerin yazılıma gönderilmesi Return komutu ile sağlandı.
Bu konuda önemli olan husus ilgili değişkenlerin mutlaka prosedürün başlangıç kısmında DECLARE ile tanımlanmasıdır.
Yukarıdaki prosedür parametrik olarak dışarıdan sağlanan verilerin işletilmesi ve sonuç olarak programa bir çıktı gönderilmesi ile alakalıdır.
Devamı SQL PROCEDURE MACERASI – 4