ورود

View Full Version : بدست اوردن رکوردی که در حال حذف شدن هست در تریگر



firststep
سه شنبه 27 تیر 1391, 19:42 عصر
سلام
من قصد دارم یک تریگر before delete بنویسم که در زما delete بر روی یک رکورد عمل کنه و رکوردی که قصد حذف شدن داره برای من مشخص کنه ایا راهی هست که اون رکرود رو پیدا کنم

پیشاپیش بسیار ممنونم

firststep
سه شنبه 27 تیر 1391, 20:12 عصر
چون جوابو خودم یافتم اینجا قرار میدم

یک جدول هست به نام deleted که در زمان delete کردن یک عنصر این عنصر به انجا میره
-- =============================================
CREATE TRIGGER [newsorginal1] ON [dbo].[news]
AFTER delete
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT * FROM DELETED;
-- Insert statements for trigger here

END

این کد یا عث میشه اون رکرودی که در جدول News پاک میشه نمایش داده بشود...

ASKaffash
چهارشنبه 28 تیر 1391, 08:05 صبح
سلام
دو حالت داره :
- اگر می خواهید بعداز حذف کردن مطلع شوید از تریگر After Delete باید استفاده کنید
- اگر می خواهید قبل از Delete مطلع شوید باید Instead Of برای Delete استفاده کنید باید دقت کنید در این حالت وظیفه حذف درون تریگر بعهده شما است و حذف اتفاق نمی افتد (چون جانشین دستور می شود)