为什么这个查询没有返回任何结果

3

我想更新员工离开工作的时间。

这句话意思是要修改员工离开工作的时间。
create proc [dbo].[upensraf]
@empl1 varchar , 
@ensraf time
as
update dbo.Elamal_elyome 
set Elanseraf=@ensraf
where  ID = (
    select (max(dbo.Elamal_elyome.ID)) 
    from dbo.Elamal_elyome  
    where employee=@empl1
)

1
UPDATE 命令不会返回任何结果。你期望它返回什么? - RBarryYoung
@RBarryYoung -- 我认为 OP 提出的问题不是关于查询语句为什么没有返回结果,而是关于更新本身为什么不能正常工作。OP 想要更新员工下班时间。 - sgeddes
1个回答

2
你需要声明你的 @empl1 varchar 变量的大小 -- 如果不定义大小,它会尝试搜索一个只有一个字符的员工(如果这是你想要更新的内容,则可以工作)。更改大小以匹配表定义中的大小 -- 在下面的示例中,我使用了 100:
create proc [dbo].[upensraf]
@empl1 varchar(100) , 
@ensraf time
as
update dbo.Elamal_elyome 
set Elanseraf=@ensraf
where  ID = (
    select (max(dbo.Elamal_elyome.ID)) 
    from dbo.Elamal_elyome  
    where employee=@empl1
)

这是一个可用的SQL Fiddle

@MohamedEl-Raei -- 没问题,很高兴能帮到你! - sgeddes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接