أكثر

تحرير جداول MSSQL الحية وتحديث الحقول

تحرير جداول MSSQL الحية وتحديث الحقول


إنني أتطلع إلى إنشاء مشغل على جدول مكاني مباشر لـ MS SQL والذي سيقوم بتحديث الحقل عندما يقوم المستخدم إما:

  1. ينشئ ميزة جديدة

  2. يحدّث هندسة المعلم.

لسوء الحظ ، لم أتمكن من العمل على تحديث حقل إلا عند إنشاء ميزة جديدة ، أو تحديث حقل لكل سجل عند تغيير هندسة السجل.

العالم المثالي - تملأ السمة "مُحدَّث" التاريخ الحالي لميزة معينة تم إنشاؤها أو تعديلها.

هذا ما لدي حتى الآن ولا يعمل إلا عند إنشاء ميزة جديدة:

قم بتعيين ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TRIGGER * [triggername] * ON * [table] * AFTER INSERT، UPDATE AS BEGIN DECLAREID VARCHAR (8) SELECTID = [ID] FROM * [table] * UPDATE * [ table] * تم تحديث SET = GETDATE () حيث [ID] =ID END GO

فيما يلي أحد المشغلات الأساسية التي سيتم إطلاقها عند تحديث سجل:

CREATE TRIGGER dbo.trg_MY_TABLE_OnUpdate ON dbo.MY_TABLE بعد التحديث AS بدء التحديث dbo.MY_TABLE تعيين DATE_CHANGED = CURRENT_TIMESTAMP، USER_CHANGED = SYSTEM_USER حيث دخل MI_PRINX (حدد MI_PRINX من الإدراج) ؛ إنهاء GO

وآخر مماثل لسجل يتم إدراجه

إنشاء TRIGGER dbo.trg_MY_TABLE_OnInsert ON dbo. MY_TABLE بعد INSERT AS بدء التحديث dbo.MY_TABLE تعيين DATE_CREATED = CURRENT_TIMESTAMP، USER_CREATED = SYSTEM_USER حيث MI_PRINX In (حدد MI_PRINX من الإدراج) ؛ إنهاء GO

في العينات أعلاه ، لا أتحقق مما إذا كان الكائن المكاني قد تم تحريره أم لا. يمكنك استخدام وظيفة UPDATE () للتحقق مما إذا كان قد تم تغيير عمود معين ، انظر المزيد هنا: https://msdn.microsoft.com/en-us/library/ms187326.aspx


شاهد الفيديو: How To Install And Configure Sql Server 2019 in Windows 10. DenRic Denise