2013-05-04 142 views
3

只是我想更新該員工離開他的工作爲什麼這個查詢不返回任何結果

create proc [dbo].[upensraf] 
@empl1 varchar , 
@ensraf time 
as 
update dbo.Elamal_elyome 
set [email protected] 
where ID = (
    select (max(dbo.Elamal_elyome.ID)) 
    from dbo.Elamal_elyome 
    where [email protected] 
) 
+1

的'UPDATE'命令不會返回任何結果。你期望它迴歸什麼? – RBarryYoung 2013-05-05 01:22:06

+0

@RBarryYoung - 我不認爲OP在詢問爲什麼查詢沒有從更新語句返回結果,而是爲什麼更新本身不起作用。 OP想要更新員工離職時間。 – sgeddes 2013-05-05 01:58:10

回答

2

您需要聲明您的@ empl1 VARCHAR變量的大小的時候 - 沒有定義的大小,它會嘗試搜索一個具有單個字符的員工(如果這是您要更新的內容,這將起作用)。更改大小,以匹配什麼在你的表定義 - 我在下面的示例中使用100:

create proc [dbo].[upensraf] 
@empl1 varchar(100) , 
@ensraf time 
as 
update dbo.Elamal_elyome 
set [email protected] 
where ID = (
    select (max(dbo.Elamal_elyome.ID)) 
    from dbo.Elamal_elyome 
    where [email protected] 
) 

這裏的工作SQL Fiddle

+0

謝謝你有用的答案:) – 2013-05-05 23:25:29

+0

@ MohamedEl-Raei - np,很高興我能幫忙! – sgeddes 2013-05-06 00:24:05