当UPDATE WHERE是动态时设置GETDATE()

时间:2015-04-09 16:19:26

标签: logging sql-server-2008-r2 gettime

我有一个名为Stored_Procedure_Logging的表,我存储了我的存储过程的日志记录。

SPD_name       Start_process             End_process
SPD_MySpd      2015-04-09 18:06:50       NULL

第一个脚本将以这种方式插入开始时间:

INSERT INTO Stored_Procedure_Logging (Start_process,SPD_name) 
VALUES (GETDATE(),OBJECT_NAME(@@PROCID))

当SDP完成其运行时,我必须使用以下脚本更新以前插入的记录和结束时间,但它不起作用!!

我在第二列(End_process)中找到一个NULL值

UPDATE  Stored_Procedure_Logging 
SET End_process = GETDATE() 
WHERE SPD_name =OBJECT_NAME(@@PROCID)

OBJECT_NAME(@@PROCID)是获取当前的SPD

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

更新查询的where子句中有多少错误。它可能不是语法错误但可能是OBJECT_NAME(@@ PROCID)值为null。

检查OBJECT_NAME(@@ PROCID)值。 可能在处理完OBJECT_NAME(@@ PROCID)后返回不同的值