أعزائي ،
من فترة وأنا أحاول تطبيق هذا القادح على جدول غلا أنه يحدث كامل الجدول دائماً عوضاً عن السطر المطلوب ، أريد أن أضعه على جدول معاين (VIEW) لكنه يرفض دائماً هل من تعليق .
CREATE TRIGGER [UPDATEPERIODS] ON [dbo].[Pol02Loss100]
AFTER INSERT, UPDATE
AS UPDATE [Pol02Loss100]
SET Expiry = DATEADD(YYYY, 1, Inception) - 1,
M1 = "Feb-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M2 = "Feb-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M3 = "Mar-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M4 = "Apr-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M5 = "May-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M6 = "Jun-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M7 = "Jul-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M8 = "Aug-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M9 = "Sep-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M10= "Oct-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M11= "Nov-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M12= "Dec-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M13= "Jan-" + CONVERT(VARCHAR(4),DATEPART(YEAR, Inception)+1) WHERE DATEPART(D, Inception) = 1 OR DATEPART(D, Inception) > 1 AND DATEPART(M, Inception) = 1,
M13= NULL WHERE DATEPART(D, Inception) = 1
SELECT * FROM [Pol02Loss1], INSERTED
WHERE Pol02Loss100.LineID = INSERTED.LineIDمع الشكر