trigger در sql

يرنامه نويسي

trigger در sql

۲۹ بازديد

توسط تريگر به جاي ماشه راه‌اندازي trigger در sql شده است، دوباره ماشه را فراخواني نمي‌كند. INSERT راه اندازي شده توسط تريگر، فرآيند اجراي اقدامات محدوديت و شليك هر تريگر AFTER INSERT تعريف شده براي جدول را آغاز مي كند.

هنگامي كه يك تريگر به جاي تعريف شده روي يك view، دستوري را در برابر view اجرا مي كند كه معمولا INSTE را فعال مي كند. AD OF دوباره ماشه، آن را بازگشتي فراخواني نمي شود. درعوض، عبارت به عنوان تغييراتي در برابر جداول پايه زير نماي آن حل مي شود. در اين حالت، تعريف view بايد تمام محدوديت‌هاي يك نماي قابل به‌روزرساني را داشته باشد. براي تعريف نماهاي قابل به روز رساني، به اصلاح داده ها از طريق نما مراجعه كنيد.

به عنوان مثال، اگر يك ماشه به عنوان يك ماشه به جاي به روز رساني براي يك view تعريف شود. و، ماشه يك عبارت UPDATE را اجرا مي‌كند كه به همان نماي ارجاع مي‌دهد، دستور UPDATE كه توسط تريگر به جاي ماشه راه‌اندازي trigger در sql شده است، دوباره ماشه را فراخواني نمي‌كند. به‌روزرساني راه‌اندازي‌شده توسط ماشه در برابر نما پردازش مي‌شود كه گويي نماي به‌جاي ماشه‌اي ندارد. ستون‌هاي تغيير يافته توسط UPDATE بايد به يك جدول مبنا تبديل شوند. هر تغيير در جدول پايه زيربنايي زنجيره اعمال محدوديت ها و شليك پس از تريگرهاي تعريف شده براي جدول را آغاز مي كند.

آزمايش براي به‌روزرساني يا درج اقدامات در ستون‌هاي خاص

مي توانيد يك تريگر Transact-SQL براي انجام اقدامات خاصي بر اساس تغييرات به روز رساني يا INSERT در ستون هاي خاص طراحي كنيد. براي اين منظور از UPDATE() يا COLUMNS_UPDATED در بدنه ماشه استفاده كنيد. UPDATE() براي تلاش هاي UPDATE يا INSERT روي يك ستون آزمايش مي كند. COLUMNS_UPDATED اقدامات UPDATE يا INSERT را كه روي چندين ستون اجرا مي شوند، آزمايش مي كند. اين تابع يك ايرانيان سايبر الگوي بيتي را برمي گرداند كه نشان مي دهد كدام ستون ها درج يا به روز شده اند.

محدوديت هاي ماشهCREATE TRIGGER بايد trigger در sql اولين عبارت در دسته باشد و فقط براي يك جدول اعمال شود.

يك ماشه فقط در پايگاه داده فعلي ايجاد مي شود. با اين حال، يك ماشه مي تواند به اشياء خارج از پايگاه داده فعلي ارجاع دهد.اگر نام طرحواره ماشه براي واجد شرايط بودن تريگر مشخص شده است، نام جدول را به همين ترتيب واجد شرايط كنيد.

يك اقدام ماشه را مي توان براي بيش از يك اقدام كاربر (به عنوان مثال، INSERT و UPDATE) در همان دستور CREATE TRIGGER تعريف كرد.

به جاي DELETE/UPDATE، تريگرها را نمي توان در جدولي كه داراي يك كليد خارجي با يك آبشار در اقدام DELETE/UPDATE تعريف شده است، تعريف كرد.

هر دستور SET را مي توان در داخل يك تريگر مشخص كرد. گزينه SET انتخاب شده در طول اجراي تريگر به قوت خود باقي مي ماند و سپس به تنظيمات قبلي خود باز مي گردد.

هنگامي كه يك ماشه فعال مي شود، نتايج به برنامه فراخواني بازگردانده مي شود، درست مانند رويه هاي ذخيره شده. براي جلوگيري از بازگرداندن نتايج به يك برنامه به دليل شليك ماشه، از عبارت SELECT كه نتايج را برمي‌گرداند يا عباراتي كه تخصيص متغير را در يك ماشه انجام مي‌دهند، استفاده نكنيد. يك ماشه كه شامل دستورات SELECT است كه نتايج را به كاربر برمي‌گرداند يا عبارت‌هايي كه انتساب متغير را انجام trigger در sql مي‌دهند، نياز به رسيدگي خاصي دارد. شما بايد نتايج برگشتي را در هر برنامه‌اي كه در آن تغييرات در جدول ماشه مجاز است، بنويسيد. اگر تخصيص متغير بايد در يك تريگر اتفاق بيفتد، از عبارت SET NOCOUNT در شروع تريگر استفاده كنيد تا از بازگشت هر مجموعه نتيجه جلوگيري كنيد.

اگرچه يك دستور TRUNCATE TABLE در واقع يك دستور DELETE است، اما يك ماشه را فعال نمي كند زيرا عمليات حذف رديف هاي جداگانه را ثبت نمي كند. با اين حال، فقط آن دسته از كاربراني كه مجوز اجراي دستور TRUNCATE TABLE را دارند، بايد نگران دور زدن ناخواسته يك ماشه DELETE از اين طريق باشند.

عبارت WRITETEXT، چه وارد شده باشد و چه trigger sql از سيستم خارج شده باشد، يك ماشه را فعال نمي كند.دستورات Transact-SQL زير در تريگر DML مجاز نيستند:تغيير پايگاه دادهايجاد پايگاه دادهرها كردن پايگاه دادهبازيابي پايگاه دادهبازيابي گزارشپيكربندي مجدد

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.