View Full Version : سوال در مورد تریگر ؟؟
javad3151
چهارشنبه 25 مرداد 1385, 10:24 صبح
سلام
یه تریگر دارم که موقع Insert, update, delete فعال میشه، چطور میتونم بفهمم که کدوم رکورد تغییر کرده؟ (مثلا identity رکوردی رو که حذف شده را بگیرم)؟
اگر یه مرجع اینترنتی ساده و کامل در مورد تریگر هم معرفی کنید ممنون میشم.
حمیدرضاصادقیان
چهارشنبه 25 مرداد 1385, 12:22 عصر
اولا بهترین مرجع یکی BOL هست و یکی هم MSDN. دوم برای پیدا کردن رکورد مخصوص باید به جدولهای مخصوص خود تریگر inserted یا deleted مراجعه کنید.
javad3151
چهارشنبه 25 مرداد 1385, 13:07 عصر
خیلی ممنون که جواب دادید. میشه یه مثال بزنید
h_baqery
شنبه 28 مرداد 1385, 13:35 عصر
کافیه داخل خود تریگر از این جدولها انتخاب کنید .
جدول inserted مقادیری رو که جدیدا ایجاد شده اند رو نگهداری می کنه و deleted مقادیر قبلی رو .
مثلا برای این مورد نظر شما دستور زیر مقدار فیلد حذف شده رو می آورد
select pk_field1 from deleted
مقدار این دستور رو داخل یک متغیر قرار دهید و هر کاری که می خواهید با آن انجام دهید.
javad3151
یک شنبه 29 مرداد 1385, 07:51 صبح
در مورد Insert و Delete مشکلی نیست ولی برای آپدیت چیکار کنم؟؟؟(جدولی به نام Updated وجود نداره)
مخصوصا اگر بخواهیم مشخص کنیم که کدامیک از فیلدها آپدیت شده
mehranFX
یک شنبه 29 مرداد 1385, 08:30 صبح
در مورد Insert و Delete مشکلی نیست ولی برای آپدیت چیکار کنم؟؟؟(جدولی به نام Updated وجود نداره)
مخصوصا اگر بخواهیم مشخص کنیم که کدامیک از فیلدها آپدیت شده
عمل بروز رسانی یعنی یک عمل حذف و یک عمل درج مجدد . به راهنمای آنلاین SQL Server مراجعه کن.
h_baqery
یک شنبه 29 مرداد 1385, 16:47 عصر
در موقع update هر دو جدول رو در اختیار دارید . یعنی مقدار جدید در inserted و مقدار قبلی در Deleted
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.