Trigger hakkın da yardım istedim çok güzel açıkladınız..Ben SQL Server da
aynı şekilde kodları yazıyorum hata veriyor..mesela
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'urunler' AND type = 'TR')
DROP TRIGGER reminder
GO
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE
AS RAISERROR (50009, 16, 10)
GO
bu örneği koduma göre değiştiriyorum hataveriyor.
USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'reminder' AND type = 'TR')
DROP TRIGGER reminder
GO
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE, DELETE
AS
EXEC master..xp_sendmail 'MaryM',
'Don''t forget to print a report for the distributors.'
GO
bunda da değişiklikler yapıyorum aybı şekilde bir tane çalışır örnek verirseniz ve de hatamı söylerseniz çok sevinirim.Mesajlarınızı bekliyorum...
Trigger da sorunum var
sanirim burada artik SQL server'a ozel bir takim komutlar devreye girdi. yani beni asti. Hic SQL server kullanmadim....
Eger
sanirim bir stored proce3dure cagiriliyor ama SP un adi master..xp_sendmail seklinde midir? ayrica SP cagirma yonteminin SQL server icin bu sekilde oldugundan emin olun.
Bir de
Tabi bir de hatayi verdigi satir da onemli neresi icin hata veriyor?
Eger
bu kod calisiyor ise digerindeki farkliliklara bakmak lazim... ilave bir DELETE var....USE pubs
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'urunler' AND type = 'TR')
DROP TRIGGER reminder
GO
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE
AS RAISERROR (50009, 16, 10)
GO
sanirim bir stored proce3dure cagiriliyor ama SP un adi master..xp_sendmail seklinde midir? ayrica SP cagirma yonteminin SQL server icin bu sekilde oldugundan emin olun.
Bir de
icindeki yan yana iki tirnak da sorun yapabilir. String icine tırnak yazmanin mutlaka bir yontemi vardir ama simdilik do not diyerek bir deneyebilirsiniz...'Don''t forget to print a report for the distributors.'
Tabi bir de hatayi verdigi satir da onemli neresi icin hata veriyor?
titles de veriyor
şimdi ben bunu çalıştıramıyrum onun için ken di örneklerim de çalışmıyor,
invaled object name 'titles' diye hata veriyor siliyorum yine veriyor...
ON titles Satırı
invaled object name 'titles' diye hata veriyor siliyorum yine veriyor...
ON titles Satırı
aser
sorun yukarıdaki kod
Bu kodu help den aldım buna benzer kodları trigger olarak çalıştırmaya çalışıyorum fakat bir türlü çalışmıyor.trigger la ilgili örnek veya yardımınız varsa yardım cı olursanız çok sevinirim...
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
aser
İki tane tablo var SICIL ve SICILEK ikisinde de ortak olarak ISYERI ve SICILNO diye iki alan var. SICIL tablosunda bu iki alana göre silme yapıldığında (bunlar primary key) SICILEK de de aynı ISYERI ve SICILNO kaydını bulup siliyor. @ISYERI ve @SICILNO değişken, silinen tablodan aldığı ISYERI ve SICILNO değerleri bu değişkenlere atanıp silinecek tabloadan (yani SICILEK) silme işlemi gerçekleştiriliyor.
Umarım işine yarar.
Kolay gelsin.
Umarım işine yarar.
Kolay gelsin.
Kod: Tümünü seç
CREATE TRIGGER DELETE_SICIL ON dbo.SICIL FOR DELETE AS
BEGIN
DECLARE @ISYERI VARCHAR(8)
DECLARE @SICILNO VARCHAR(15)
DECLARE SILINENLER CURSOR FOR SELECT ISYERI,SICILNO FROM DELETED
OPEN SILINENLER
FETCH NEXT FROM SILINENLER INTO @ISYERI, @SICILNO
WHILE @@FETCH_STATUS <> -1
BEGIN
DELETE FROM SICILEK WHERE ISYERI=@ISYERI AND SICILNO=@SICILNO
FETCH NEXT FROM SILINENLER INTO @ISYERI, @SICILNO
END
CLOSE SILINENLER
DEALLOCATE SILINENLER
END
- Yusuf AYDIN
- Üye
- Mesajlar: 69
- Kayıt: 02 Oca 2004 05:45
- Konum: Antalya
QSL server da benimde çok fazla deneyimim yok ama
mçetin_58 in gönderdiği triger create işleminde
Ama daha sonra gönderdiği Help rutininde ise
Yani Delete işlemini içermiyor. Ben öyle algılıyorda olabilirim.
Ayrıca bir trigerın nasıl Delete tetiklemesi olmaz. buda ap ayrı birsoru veya sorun.
mçetin_58 in gönderdiği triger create işleminde
FOR INSERT, UPDATE, DELETE
Ama daha sonra gönderdiği Help rutininde ise
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
Yani Delete işlemini içermiyor. Ben öyle algılıyorda olabilirim.
Ayrıca bir trigerın nasıl Delete tetiklemesi olmaz. buda ap ayrı birsoru veya sorun.
SQL Server'ın helpinden:

Ayrıca gönderdiğim örnek DELETE için, ve ben bunu SQL Serverda hazırladım test ettim ve gönderdim. Yani trigger da delete de kullanılabiliyor.
{ [DELETE] [,] [INSERT] [,] [UPDATE] }
Are keywords that specify which data modification statements, when attempted against this table or view, activate the trigger. At least one option must be specified. Any combination of these in any order is allowed in the trigger definition. If more than one option is specified, separate the options with commas.
For INSTEAD OF triggers, the DELETE option is not allowed on tables that have a referential relationship specifying a cascade action ON DELETE. Similarly, the UPDATE option is not allowed on tables that have a referential relationship specifying a cascade action ON UPDATE.
