الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قادح SQL

مغلق
بدأه karramli في 26 مايو 2004 · 1 رد · 822 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعزائي ،

من فترة وأنا أحاول تطبيق هذا القادح على جدول غلا أنه يحدث كامل الجدول دائماً عوضاً عن السطر المطلوب ، أريد أن أضعه على جدول معاين (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

مع الشكر

تم تعديل هذه المشاركة بواسطة walcom في 28 نوفمبر 2005 في 12:13

#2

ممكن بنية الجداول التي يعمل عليها الtrigger.

عندي إحساس بأن جداولك يمكن تصميمها بطريقة أفضل ، أتمنى أن يكون إحساسا كاذبا.

اقتباس
"أريد أن أضعه على جدول معاين (VIEW) لكنه يرفض دائماً "

الview لا يمكنه التحديث ، بل هو يختار ويسترجع بيانات فقط،

للتحديث يفضل أن تجعله stored procedure.

تم تعديل هذه المشاركة بواسطة walcom في 5 يونيو 2004 في 16:46

فكر بطريقة أخرى

هذا الموضوع مغلق.

مواضيع مشابهة