SQL Cell Wise Trigger
-
29-09-2019 - |
سؤال
هل يمكن إنشاء زناد محدد خلية حكيمة؟
أو
IF UPDATE(COLUMN) WHERE OTHER_COLUMN LIKE 'JT'
ما يعادل الحاضر في SQL Server 2008؟
تعديل بعد الحصول على الإجابة الثانية ---
IF not UPDATE(CurrentNo) --// Wanted to do like this : where series ='JT'
return
IF not EXISTS(SELECT 'True'
FROM Inserted i
JOIN Deleted d ON i.Series = d.Series
WHERE i.Series = 'JT' AND d.Series = 'JT')
return
يبدو على ما يرام! الرجاء التعليق.
المحلول
لا ، لا توجد طريقة للقيام بذلك بشكل إعلاني. ستحتاج إلى إنشاء مشغل تحديث عام ووضع المنطق فيه للعودة على الفور IF NOT UPDATE (column)
إذا كان عمود الاهتمام كنت تم التحديث ثم يمكنك الاستعلام عن inserted
و deleted
الجداول الزائفة للسماح لك بمعالجة الصفوف حيث تم استيفاء حالة الاهتمام.
نصائح أخرى
يتم تحديد Tigrers على الجداول ، وليس على الصفوف أو الأعمدة أو الخلايا. داخل جسم الزناد ، سيكون بإمكانك الوصول إلى الجداول المدرجة والحذف. يمكنك الانضمام إليهم معًا لتراجع الأعمدة التي تم تغييرها أثناء التحديث. ال تحديث() الوظيفة المتوفرة في SQL Server 2008 (وكذلك الإصدارات السابقة) هي طريقة اختصار لتحديد ما إذا كان العمود قد تغير.