PDA

View Full Version : تريگر



dottnett
سه شنبه 25 مرداد 1390, 08:33 صبح
با سلام
تريگري مي خواهم بنويسم كه :
ركوردهاي جدول فرعي را كه نوع محصول آنها كتاب و كد محصول آنها برابر با كد محصول جدول اصلي (deleted) است را پاك نمايم .

Galawij
سه شنبه 25 مرداد 1390, 09:01 صبح
این لینک
http://barnamenevis.org/showthread.php?296640-آموزش-کار-با-تریگر
و این لینک
http://barnamenevis.org/showthread.php?292975-کلید-خارجی
را مطالعه کنید.
سوالی بود در خدمتیم.

dottnett
سه شنبه 25 مرداد 1390, 10:03 صبح
دوست عزيز در كدي كه به صورت زير نوشتم ، اگر product_kind را حذف كنم كد هايي كه كد محصول آنها برابر كد محصول جدول delete است پاك مي شود ولي وقتي شرط product_kind را اضافه مي كنم هيچ اتفاقي نمي افتد


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON

go


ALTER TRIGGER [dbo].[tg_Delete_book_Stock]
ON [dbo].[book]
AFTER DELETE
AS

delete from store_stock where product_id in (select id from deleted) and product_kind=N'كتاب'

Galawij
سه شنبه 25 مرداد 1390, 12:22 عصر
دیگه این شرط را نمی خواد. مگر این فیلد در جدول اصلی قرار ندارد؟ وقتی شما ID جدول اصلی را دارید، در نتیجه نوع هم اتوماتیک چک می شود.

dottnett
سه شنبه 25 مرداد 1390, 12:35 عصر
چون محصولات جدول من هم شامل نرم افزار و هم شامل كتاب مي شود ، در صورتيكه شرط را نگذارم اگر كد مشابهي از دو محصول داشته باشم هر دو را پاك مي كند