انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری
ایجاد تریگر برای جلوگیری از حذف پایگاه داده - نسخه‌ی قابل چاپ

+- انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری (http://forum.a00b.com)
+-- انجمن: سوالها و مقاله های آموزشی (/forumdisplay.php?fid=1)
+--- انجمن: مقاله های آموزشی (/forumdisplay.php?fid=3)
+--- موضوع: ایجاد تریگر برای جلوگیری از حذف پایگاه داده (/showthread.php?tid=178)



ایجاد تریگر برای جلوگیری از حذف پایگاه داده - ali - 05-21-2018 11:23 AM

چند روز پیش در محل کار یکی از دوستان که البته مدیر بنده هم هستند به اشتباه فایل پایگاه داده یکی از شرکت ها را پاک کردند. HuhHuhHuh
این مساله باعث شد که دردسر زیادی برای بازیابی دیتا و عملیات سینک و . . . متحمل شویم. Smile بر آن شدیم که راه حلی با تریگر ارائه دهیم.
با استفاده از این تریگر شما می توانید از حذف یک دیتابیس یا پایگاه داده جلوگیری نمایید. این تریگر یک تریگر دیتابیسی می باشد.

کد:
CREATE TRIGGER Prevent_DB_Drop
ON ALL SERVER
FOR DROP_DATABASE
AS
DECLARE @DatabaseName NVARCHAR(100),
        @eventData XML

--set the EVENTDATA() functions value to our xml so we can parse it
SET @eventData = EVENTDATA()          
SELECT @DatabaseName     = @eventData.value('(/EVENT_INSTANCE/DatabaseName)[1]'     ,'varchar(128)' )
IF @DatabaseName IN ('testDB')
  BEGIN
    PRINT 'You are not allowed to drop this Database.'
    ROLLBACK;
  END
GO
ENABLE TRIGGER [Prevent_DB_Drop] ON ALL SERVER

به جای عبارت testDB می توانید عنوان پایگاه داده خود را وارد نمایید و به جای عبارت You are not allowed to drop this Database. هم می توانید پیام مورد نظر خود را وارد نمایید.