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
)
4

1 回答 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

于 2013-05-05T00:27:06.353 回答