Trigger ile Prosedure (SP) tetikmele imkanı var mı ?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
denizfatihi
Üye
Mesajlar: 221
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Trigger ile Prosedure (SP) tetikmele imkanı var mı ?

Mesaj gönderen denizfatihi » 06 Tem 2017 02:19

Merhaba,

Merak ettiğim bir konu var mssql da yazdığım bir prosedure yi trigger içinden tetikleme imkanı var mı ?

Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 04:38
Konum: İstanbul

Re: Trigger ile Prosedure (SP) tetikmele imkanı var mı ?

Mesaj gönderen adelphiforumz » 06 Tem 2017 07:12

Evet var
basit bir örnek yapmaya çalıştım

Kod: Tümünü seç

Create Table [dbo].[Kayit](
	[IdAuto] [int] Identity(1,1) Not Null,
	[Kayit] [Varchar](50) Null,
 Constraint [PK_Kayit] Primary Key Clustered 
(
	[IdAuto] Asc
)With (Pad_Index  = Off, Statistics_Norecompute  = Off, Ignore_Dup_Key = Off, Allow_Row_Locks  = On, Allow_Page_Locks  = On) On [PRIMARY]
) On [PRIMARY]
go


Create Table [dbo].[Sayac](
	[IslemTip] [Varchar](1) Not Null,
	[TabloAdi] [Varchar](50) Null,
	[Say] [int] Null,
	[SonKayit] [Varchar](50) Null,
 Constraint [PK_Sayac] Primary Key Clustered 
(
	[IslemTip] Asc
)With (Pad_Index  = Off, Statistics_Norecompute  = Off, Ignore_Dup_Key = Off, Allow_Row_Locks  = On, Allow_Page_Locks  = On) On [PRIMARY]
) On [PRIMARY]
go

    Create Procedure [dbo].[SPI_KayitEklendi]
       @pKayit Varchar(50)
    As
    Begin
        If (Select Top 1 Count(*) From Sayac With(NoLock) Where IslemTip = 'I' And  TabloAdi = 'Kayit') = 0
            Insert Sayac (IslemTip, TabloAdi, Say, SonKayit) Values  ('I', 'Kayit', 1, @pKayit)
        Else
            Update Sayac  Set Say = IsNull(Say,0) + 1, SonKayit = @pKayit
    End
Go


  Create Trigger [dbo].[KayitSay] On [dbo].[Kayit]
  For Insert
  As
  Begin
      Declare @Kayit Varchar(50)
      Select Top 1 @Kayit = Kayit From inserted
      Exec SPI_KayitEklendi @pKayit = @Kayit
  End

Go


Insert Into Kayit (Kayit) Values  ('Test 1')
Insert Into Kayit (Kayit) Values  ('Test 2')
Insert Into Kayit (Kayit) Values  ('Test 3')
go


Select * From Sayac
go

Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana

denizfatihi
Üye
Mesajlar: 221
Kayıt: 16 Şub 2004 06:12
Konum: istanbul

Re: Trigger ile Prosedure (SP) tetikmele imkanı var mı ?

Mesaj gönderen denizfatihi » 07 Tem 2017 07:53

Günaydın,

Çok teşekkür ederim işimi çözdü, kolay gelsin.

Cevapla