ورود

View Full Version : سوال: بروزرسانی آخرین رکورد با تریگر



dr_csharp
سه شنبه 16 مهر 1387, 15:44 عصر
سلام
من میخوام وقتی رکورد جدیددرون جدول CallRecorder وارد میشه ،روی فیلد BeginTime جدول که از نوع NVARCHAR هست عملیاتی انجام و فیلد Update بشه :


CREATE TRIGGER pbxTime ON CallRecorder
FOR INSERT
AS
DECLARE @RecId INT;
DECLARE @BeginTime nvarchar(10);
DECLARE @time DATETIME;

SELECT @RecId=RecId,@BeginTime=BeginTime FROM Inserted


DECLARE @second INT;

SET @time=CAST(@BeginTime AS DATETIME);

SET @second=DATEPART(second,@time);

IF(@second>30)

SET @time=DATEADD(minute,1,@time);
SELECT @BeginTime=CONVERT(CHAR(5), @time,114);

UPDATE CallRecorder SET BeginTime=@BeginTime where RecId=@RecId;


آیا روش فوق بهینه است ؟ ( منظور روش استفاده شده در انتخاب اخرین رکورد و انتخاب فیلد BeginTime آخرین رکورد )

SYNDROME
سه شنبه 16 مهر 1387, 16:02 عصر
به نظر من از INSTEAD OF استفاده کنید خیلی راحتر می توانید کنترل فوق را انجام دهید.
موفق باشید