May
13
2011

SQL PROCEDURE MACERASI -5

Standart düzenlerde bunlar için ayrı ayrı bağlantı nesneleri yaratılır, tablonun bir tanesine kayıt yapılır sonra o kayıt tablodan

tekrar okunur ve alınan ID bilgisi diğer bir tabloyu çapraz olarak bağlamak üzere farklı bir alana kayıt edilir…

Sözel olarak özet geçmek istediğimde bile kafam karışıyor J programsal kısmını düşünmek bile istemiyorum. Haydi, bu kadar uzun

kodu yazdım diyelim o zaman da programın performansı ne kadar düşer tahmini bile zor J

O zaman bu tarz bir kodu STORED PROCEDURE ile yazmak istediğimizde bakın neler oluyor.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
— =============================================
— Author: Burak SEKERCIOGLU
— Create date: 12/05/2011
— Description: SP TEST-5
— =============================================
CREATE PROCEDURE sp_test (@kod1 int, @kod2 int)
AS
Declare @tablo1ID int
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)
set @tablo1ID=SCOPE_IDENTITY()
Insert into ikincitablo (tablo1id,alan1) values (@tablo1ID,@kod1)
End
Else
Begin
Print ‘TEST_TABLOMUZ tablosunda aynı kayıt var’
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
Print ‘TEST_TABLOMUZ2 tablosunda aynı kayıt var’
End
end
END
GO

Yukarıdaki prosedürümüzde, öncekilere ek olarak

set @tablo1ID=SCOPE_IDENTITY()
Insert into ikincitablo (tablo1id,alan1) values (@tablo1ID,@kod1)

Satırları ile @tablo1ID değişkeninin tanımlandığı Declare @tablo1ID int Satırı eklendi.
Bu kodlarda ne anlatmak istedik, bakalım;

Declare @tablo1ID int
İle prosedürümüz içersinde @tablo1ID isimli bir değişkene INTEGER veri atayacağımızı söyledik.
Insert into test_tablomuz (alan1,alan2) values (@kod1,@kod2)
Test_tablomuz üzerine @kod1 ve @kod2 değişkenlerine atanan parametrik verileri kaydettik
set @tablo1ID=SCOPE_IDENTITY()
SCOPE_IDENTITY () fonksyionu ile Test_tablomuz üzerine kayıt ettiğimiz son verinin PRIMARY KEY (ID) değerini aldık ve

@tablo1ID değişkenine yükledik.
Insert into ikincitablo (tablo1id,alan1) values (@tablo1ID,@kod1)

Tanımlanan @tablo1ID değişkeni ikincitablo üzerinde ilgili kolona eklendi.

Umarım şu ana kadar anlaşılmayan bir şey yoktur. 🙂

Devamı SQL Procedure Macerası -6

TeamViewer ile İnternet üzerinden Uzaktan Erişim ve Destek Sekercioglu.eu Uzaktan Yardım
Ammyy Uzaktan Yardım
WinRAR
WEBMAIL Google PageRank Checker
Twitterda Takip Edin! Twitterda Takip Edin!
Twitter

Üye Paneli

Son Yazılar

Kategoriler

Son Yorumlar