Soran
Şarta bağlı tetiklenen trigger

Soru
-
Merhaba,
Hesap (hesapid, müşteriid, odaid, personelid, ...), Oda(odaid, odaadı, odatürü, odadurum, ...) ve Müşteri(müşteriid, müşteriad, müşterisoyadı, ....) tablolarım var.
istediğim odaya müşteri kaydederken hesap tablosunda kayıt açmak ve odaid ve müşteriid kaydeden trigger yazmak(bunu yaptım). Ama oda tablosundaki odadurum boş ise bunu yapsın istiyorum bu şartı nasıl yazabilirim. teşekkürler.
ALTER TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS DECLARE @MUSTERIID int, @ODAID int SELECT @MUSTERIID=MUSTERIID, @ODAID=MUSTERIODAID FROM inserted INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) VALUES (@MUSTERIID,@ODAID, GETDATE())
- Düzenleyen Recep Dogan 11 Haziran 2019 Salı 17:13
Tüm Yanıtlar
-
Ortada kod yok :)
if inserted.OdaDurum = "bosNasilIse" begin -- ... end;
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak Öneren Mustafa BÜKÜLMEZz 11 Haziran 2019 Salı 13:10
-
Yukarıda yazmistim zaten:
ALTER TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS if inserted.OdaDurum = "bosNasilIse" begin INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) SELECT MUSTERIID, MUSTERIODAID, getdate() FROM inserted ; end;
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
-
O zaman ben tablo yapilarini ve soruyu anlamadım demektir. Tablolarin yapilarini ve bir miktar verisini ornek olarak verebilirsen bakarim (maçtan sonra).
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Bunlar kod degil resim. Kod olarak verir misin.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
ALTER TRIGGER [dbo].[ODADURUM] ON [dbo].[HESAP] AFTER INSERT AS DECLARE @HESAPID int, @ODAID INT SELECT @HESAPID = HESAPID, @ODAID = ODAID FROM inserted UPDATE ODA SET ODADURUM = 0 WHERE @ODAID = ODAID;
ALTER TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS DECLARE @MUSTERIID int, @ODAID int SELECT @MUSTERIID=MUSTERIID, @ODAID=MUSTERIODAID FROM inserted INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) VALUES (@MUSTERIID,@ODAID, GETDATE())
-
Create TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS if exists ( select * from Oda o where o.OdaId = inserted.MUSTERIODAID and o.OdaDurum = 0 ) begin INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) SELECT MUSTERIID, MUSTERIODAID, GetDate() FROM inserted; end;
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
CREATE TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS DECLARE @MUSTERIODAID int, @ODAID int, @MUSTERIID int SELECT @MUSTERIID=MUSTERIID, @MUSTERIODAID=MUSTERIODAID FROM inserted if exists (select * from Oda o where o.OdaId = @MUSTERIODAID and ODADURUM=0) begin INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) SELECT @MUSTERIID, @MUSTERIODAID, GetDate() FROM inserted; end;
Çok teşekkür ederim Çetin abi böyle düzenledim oldu çok şükür. Allah razı olsun -
CREATE TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS DECLARE @MUSTERIODAID int, @ODAID int, @MUSTERIID int SELECT @MUSTERIID=MUSTERIID, @MUSTERIODAID=MUSTERIODAID FROM inserted if exists (select * from Oda o where o.OdaId = @MUSTERIODAID and ODADURUM=0) begin INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) SELECT @MUSTERIID, @MUSTERIODAID, GetDate() FROM inserted; end;
Çok teşekkür ederim Çetin abi böyle düzenledim oldu çok şükür. Allah razı olsunNeyi düzenledin anlamadım. Gene gereksiz değişkenleri eklemişsin, ben yazmistim zaten yukarıda. Bu haliyle yanlış. Ben de hata yapmisim:
Create TRIGGER [dbo].[MUSTERIHESAP] ON [dbo].[MUSTERI] AFTER INSERT AS if exists ( select * from Oda o where o.OdaId = inserted.MUSTERIODAID and o.OdaDurum = 0 ) begin INSERT INTO HESAP (MUSTERIID,ODAID,HESAPACILISTARIHI) SELECT i.MUSTERIID, i.MUSTERIODAID, GetDate() FROM inserted i Inner join Oda o on i.MusteriOdaId = o.OdaId Where o.OdaDurum = 0; end;
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
- Düzenleyen CetinBasoz 13 Haziran 2019 Perşembe 18:52