Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Trigger ile İlgili Kaydın ID Numarası
#1
Selamlar,
başlığı nasıl yazayım bilemedim.
Sorumu anlatayım. 
Kullanılan veritabanı SQL Server. 
Bir trigger ile tüm tablolarda herhangi bir kayıt eklendiğinde veya güncellendiğinde; eklenen veya güncellenen kayıtta bir güncelleme getirmek istiyorum. Bunu nasıl yaparım diye sizden yardım istiyorum? 

Örneğin: trigger'ı afterinsert ve afterupdate şeklinde ayarlanmış. Kullanıcı herhangi bir tabloda ekleme veya güncelleme işlemi yaptığında o kaydın id numarasını alıp o kayıtta güncelleme yapmam lazım. Takildigim nokta id alma. O kaydın id numarasini nasıl alabilirim? Zira diğer basamaklar tetiklenmeye bakıyor. 

Teşekkürler.
İyi çalışmalar dilerim.
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#2
Çözümü buldum, teşekkürler.
Çözüm: https://stackoverflow.com/a/3183754
Yazılım Topluluğumuz -> Tıklayın
Kişisel Tanıtım Sitem -> Tıklayın
20 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#3
Çözümü paylaştığınız için teşekkürler.
Cevapla
#4
triger ile ilgili çok güzel bir örnektir severim

CREATE TABLE [dbo].[deneme](
[id] [int] IDENTITY(1,1) NOT NULL,
[deneme] [varchar](50) NULL
) ON [PRIMARY]


create trigger [dbo].[test] on [dbo].[deneme]
FOR INSERT, UPDATE, DELETE
AS BEGIN
IF @@ROWCOUNT = 0 RETURN;

SELECT i.id AS [Inserted], i.deneme AS [NewValue],
d.id AS [Deleted], d.deneme AS [OldValue]
FROM inserted i
FULL OUTER JOIN deleted d ON i.id = d.id
END;



PRINT 'Inserting';
INSERT INTO deneme
(deneme)
VALUES ('deneme1')

PRINT 'Updating';
UPDATE deneme
SET deneme = 'Deneme x'
WHERE (id = 1)

PRINT 'Deleting';
DELETE from [dbo].[deneme]
WHERE id = 1;
GO


--------------------------------------------------------------------------------------------------------------------------------
Inserting
Inserted NewValue Deleted OldValue
----------- -------------------------------------------------- ----------- --------------------------------------------------
1 deneme1 NULL NULL

(1 row(s) affected)

(1 row(s) affected)

Updating
Inserted NewValue Deleted OldValue
----------- -------------------------------------------------- ----------- --------------------------------------------------
1 Deneme x 1 deneme1

(1 row(s) affected)

(1 row(s) affected)

Deleting
Inserted NewValue Deleted OldValue
----------- -------------------------------------------------- ----------- --------------------------------------------------
NULL NULL 1 Deneme x

(1 row(s) affected)


(1 row(s) affected)
Cevapla
#5
(14-09-2020, Saat: 12:48)coderheader Adlı Kullanıcıdan Alıntı: triger ile ilgili çok güzel bir örnektir severim

CREATE TABLE [dbo].[deneme](
[id] [int] IDENTITY(1,1) NOT NULL,
[deneme] [varchar](50) NULL
) ON [PRIMARY]


create trigger [dbo].[test] on [dbo].[deneme]
FOR INSERT, UPDATE, DELETE
AS BEGIN
IF @@ROWCOUNT = 0 RETURN;

SELECT i.id AS [Inserted], i.deneme AS [NewValue],
d.id AS [Deleted], d.deneme AS [OldValue]
FROM inserted i
FULL OUTER JOIN deleted d ON i.id = d.id
END;



PRINT 'Inserting';
INSERT INTO deneme
                        (deneme)
VALUES        ('deneme1')

PRINT 'Updating';
UPDATE       deneme
SET                deneme = 'Deneme x'
WHERE        (id = 1)

PRINT 'Deleting';
DELETE  from [dbo].[deneme]
WHERE id = 1;
GO


--------------------------------------------------------------------------------------------------------------------------------
Inserting
Inserted    NewValue                                           Deleted     OldValue
----------- -------------------------------------------------- ----------- --------------------------------------------------
1           deneme1                                            NULL        NULL

(1 row(s) affected)

(1 row(s) affected)

Updating
Inserted    NewValue                                           Deleted     OldValue
----------- -------------------------------------------------- ----------- --------------------------------------------------
1           Deneme x                                           1           deneme1

(1 row(s) affected)

(1 row(s) affected)

Deleting
Inserted    NewValue                                           Deleted     OldValue
----------- -------------------------------------------------- ----------- --------------------------------------------------
NULL        NULL                                               1           Deneme x

(1 row(s) affected)


(1 row(s) affected)

Lütfen forum kurallarına uyalım... UYARIDIR!
Delphi Can'dır!
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Çözüldü] Trigger çalışmaması hk. cinarbil 7 2.315 18-08-2019, Saat: 20:49
Son Yorum: serdar
  MS SQL de dikkat edilmesi gerekenler ile ilgili makale adelphiforumz 2 1.271 26-03-2019, Saat: 08:27
Son Yorum: Tuğrul HELVACI
  Trigger a paramatre gönderme Bay_Y 11 4.066 28-05-2018, Saat: 11:59
Son Yorum: Bay_Y
  Otomatik Artan Numarası Yakalama MosCom 11 4.668 22-09-2017, Saat: 16:21
Son Yorum: MosCom
  Trigger ile iki alanı birleştirme AkMegaSoft 9 4.475 08-06-2017, Saat: 16:33
Son Yorum: AkMegaSoft



Konuyu Okuyanlar: 2 Ziyaretçi