2013-05-04 2 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

+0

@RBarryYoung - Я не думаю, что OP спрашивает, почему запрос не возвращает результаты инструкции обновления, а скорее, почему само обновление не работает. OP хочет обновить время, когда сотрудник покидает работу. – sgeddes

ответ

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

спасибо за полезный ответ :) –

+0

@ MohamedEl-Raei - np, рад, что я мог бы помочь! – sgeddes

Смежные вопросы