PDA

View Full Version : پاک کردن دو table توسط trigger



a.khosroabadi
شنبه 28 آبان 1390, 22:31 عصر
سلام به همه
من یه مشکلی دارم
یه table دارم که که اطلاعات عمومی مشترکینم توشه میخوام وقتی یکی از اشتراکام رو پاک میکنم هم زمان اطلاعات همون مشترکم رو از table که مخصوص اطلاعات خصوصیشون هست رو پاک کنه یه تریگر نوشتم به صورت زیر که تو table اطلاعات خصوصیشون ذخیره شده


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



-- =============================================
-- Author: alireza
-- Create date:
-- Description:
-- =============================================
ALTER TRIGGER [DeletPhonsDetails]
ON [dbo].[costumer_Phon_Details]
AFTER DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

delete from dbo.costumer_Phon_Details
from dbo.costumer_Phon_Details join DELETED
on dbo.costumer_Phon_Details.Costumer_ID=DELETED.Cost umer_ID

END


شاید تریگری که نوشتم اشتباهه.
اگه میشه راهنماییم کنید ممنون میشم

a.khosroabadi
یک شنبه 29 آبان 1390, 20:22 عصر
هیچکس نیست منو راهنمایی کنه؟؟؟؟؟؟؟

یوسف زالی
یک شنبه 29 آبان 1390, 21:16 عصر
سلام.
نیازی به join نیست.
به جای on هم where بگذارید.

a.khosroabadi
دوشنبه 30 آبان 1390, 19:01 عصر
دوست من مشکلم حل نشد
باید تریگر رو تو استور پروسیجر مخصوص Delete فراخوانی کنم؟
چجوری؟

یوسف زالی
دوشنبه 30 آبان 1390, 22:02 عصر
در خصوص تریگر به این لینک نگاهی بیندازید.
http://barnamenevis.org/showthread.php?296640-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D8%B1%DB%8C%DA%AF%D8%B1
تریگر ها رو ما فراخوانی نمی کنیم. خود اس کیو ال بر اساس نوع اون و تعریف اون تریگر رو فراخوانی می کنه.

mmd2009
سه شنبه 01 آذر 1390, 02:12 صبح
با سلام

من یک سوال دارم. اصلا چه نیازی به استفاده از trigger هست ؟! خب شما با یک رابطه یک (اطلاعات عمومی مشتری ) به یک (اطلاعات خصوصی مشتری ) میتونید خیلی راحت با حذف یک رکورد از اطلاعات مشتری رکورد های با همون مشخصات در جدول اطلاعات شخصی مشتری رو هم پاک بکنید

برای این کار کافیه در هنگام تنظیم رابطه Delete رو Cascade کنید

موفق باشید