برای اطلاعات بیشتر، استفاده از جداول درج شده trigger در sql و حذف شده را ببینید.محرکهای DDL و لاگین با استفاده از تابع EVENTDATA (Transact-SQL) اطلاعات مربوط به رویداد راهاندازی را ضبط میکنند. برای اطلاعات بیشتر، استفاده از تابع EVENTDATA را ببینید.
SQL Server بهروزرسانی ستونهای متن، ntext یا تصویر را از طریق تریگر به جای جداول یا نماها امکانپذیر میسازد.
انواع داده ntext، متن و تصویر در نسخه بعدی MicrosoftSQL Server حذف خواهند شد. از استفاده از این نوع داده ها در کارهای توسعه جدید خودداری کنید و برای اصلاح برنامه هایی که در حال حاضر از آنها استفاده می کنند برنامه ریزی کنید. به جای آن از nvarchar(max)، varchar(max) و varbinary(max) استفاده کنید. هر دو تریگرهای AFTER و STEAD OF از داده های varchar(MAX)، nvarchar(MAX) و varbinary(MAX) در جداول درج شده و حذف شده پشتیبانی می کنند.
برای تریگرها در جداول بهینه شده برای حافظه، تنها sql_statement مجاز در سطح بالا یک بلوک ATOMIC است. T-SQL مجاز در داخل بلوک ATOMIC توسط T-SQL مجاز در داخل پروسه trigger در sql های بومی محدود می شود.
برای یک ماشه CLR، روش یک مجموعه را برای اتصال با ماشه مشخص می کند. متد باید هیچ آرگومان نداشته باشد و void برگرداند. class_name باید یک شناسه SQL Server معتبر باشد و باید به عنوان یک کلاس در اسمبلی با قابلیت مشاهده اسمبلی وجود داشته باشد. اگر کلاس دارای یک نام واجد شرایط فضای نام است که از «.» استفاده می کند. برای جدا کردن قسمتهای فضای نام، نام کلاس باید با استفاده از جداکنندههای [ ] یا " " محدود شود. کلاس نمی تواند یک کلاس تودرتو باشد.
توجه داشته باشید
به طور پیش فرض، توانایی SQL Server برای اجرای کد CLR خاموش ایرانیان سایبر است. شما می توانید اشیاء پایگاه داده ای را که به ماژول های کد مدیریت شده ارجاع می دهند ایجاد، اصلاح و رها کنید، اما این مراجع در نمونه ای از SQL Server اجرا نمی شوند مگر اینکه گزینه clr فعال شده با استفاده از sp_configure فعال شود.
نکاتی برای trigger در sql محرک های DML
محرک های DML اغلب برای اجرای قوانین تجاری و یکپارچگی داده ها استفاده می شوند. SQL Server یکپارچگی ارجاعی اعلامی (DRI) را از طریق دستورات ALTER TABLE و CREATE TABLE فراهم می کند. با این حال، DRI یکپارچگی ارجاعی بین پایگاه داده را ارائه نمی دهد. یکپارچگی ارجاعی به قوانین مربوط به روابط بین کلیدهای اصلی و خارجی جداول اشاره دارد. برای اعمال یکپارچگی ارجاعی، از محدودیت های کلید اولیه و کلید خارجی در ALTER TABLE و CREATE TABLE استفاده کنید. اگر محدودیتهایی در جدول ماشه وجود داشته باشد، پس از اجرای تریگر به جای اجرای ماشه و قبل از اجرای تریگر AFTER بررسی میشوند. اگر محدودیت ها نقض شوند، اقدامات INSEAD OF trigger به عقب برگشته و ماشه AFTER فعال نمی شود.
با استفاده از sp_settriggerorder می توانید اولین و آخرین تریگرهای AFTER را برای اجرا در جدول مشخص کنید. شما می توانید برای هر عملیات INSERT، UPDATE و DELETE روی یک جدول، فقط یک trigger در sql اولین و آخرین راه اندازی AFTER را مشخص کنید. اگر تریگرهای AFTER دیگری روی همان جدول وجود داشته باشد، به طور تصادفی اجرا می شوند.
اگر عبارت ALTER TRIGGER اولین یا آخرین تریگر را تغییر دهد، اولین یا آخرین ویژگی مجموعه روی تریگر اصلاح شده حذف می شود و شما باید مقدار سفارش را با استفاده از sp_settriggerorder تنظیم مجدد کنید.
یک تریگر AFTER تنها پس از اجرای موفقیت آمیز دستور SQL آغازگر اجرا می شود. این اجرای موفقیت آمیز شامل تمام اقدامات آبشاری ارجاعی و بررسی محدودیت های مرتبط با شی به روز شده یا حذف شده است. یک AFTER بهجای یک ماشه روی یک جدول به صورت بازگشتی شلیک نمیکند.
اگر یک تریگر به جای تعریف شده روی جدول، عبارتی را در مقابل جدول اجرا کند که معمولاً تریگر INSTTEAD OF را دوباره فعال می کند، تریگر به صورت بازگشتی فراخوانی نمی شود. در عوض، دستور به گونهای trigger sql پردازش میکند که گویی جدول به جای ماشهای ندارد و زنجیره عملیات محدودیت و پس از اجرای ماشه را شروع میکند. به عنوان مثال، اگر یک ماشه به عنوان یک ماشه به جای INSERT برای یک جدول تعریف شود. و، ماشه یک دستور INSERT را روی همان جدول اجرا میکند، دستور INSERT که