2016-05-26 2 views
3

Я выполняю задание, и я застрял в этом месте около двух дней.SQL: все предлагаемые методы GetDate() не работают

Getdate() не работает для этой процедуры. Я использовал все предложенные методы.

Но снова я должен использовать инструкцию для обновления здесь. Итак, не существует ли кода процедуры для его использования без использования инструкции обновления здесь?

Update Engineer set Enter_date = getdate() where EmpNo = 'Emp001000' 
+2

MySQL или MS SQL Server? Пожалуйста, не помещайте теги, которые не задействованы! – jarlh

+0

@ jarlh - Извините. Я думал, все идет под проектированием базы данных sql. –

+0

Я не вижу, чтобы вы использовали «@Temp_Date» в любом месте SP. Вы пытаетесь вернуть значение «@Temp_Date» и назначить его «@Enter_Date»? Если да, то Google о том, как вернуть значение из SP – Alex

ответ

0

Вам не нужно @temp_date, изменить @enter_date к GetDate()

exec sp_Add_New_Engineer @EmpNo='Emp00100', @EngNo= 'E00070' , 
@Eng_Type ='Electrical Engineer', @FName ='Pramila', @LName='Thivagaran', 
@DOB ='1994/04/02', @Eng_Address='53/2, Peradeniya Road, Kandy', @Enter_Date = getdate(), @ProNo = 'P6' 

Далее я рекомендую форматирование кода, а также не префикс для вашего СФСА SP_ .Йтесь является some issues you may see при использовании sp_

0

Где вы использовали @Temp_Date. Вы объявили и присвоили ему значение, но никогда не использовали его в своем оставшемся коде. Пожалуйста, обратитесь к этому п. Ниже. Я использовал вашу переменную вместо @Enter_Date.

ALTER PROCEDURE sp_Add_New_Engineer (
    @EmpNo VARCHAR(20) 
    ,@EngNo VARCHAR(12) 
    ,@Eng_Type VARCHAR(50) 
    ,@FName VARCHAR(50) 
    ,@LName VARCHAR(50) 
    ,@DOB VARCHAR(50) 
    ,@Eng_Address VARCHAR(100) 
    ,@Enter_Date DATETIME 
    ,@ProNo VARCHAR(12) 
    ) 
AS 
DECLARE @Temp_Date DATETIME 

SET @Temp_Date = GETDATE() 

BEGIN 
    IF (
      (
       SELECT count(*) 
       FROM Supervisor 
       WHERE EmpNo = @EmpNo 
       ) = 0 
      ) 
     AND (
      (
       SELECT count(*) 
       FROM Labor 
       WHERE EmpNo = @EmpNo 
       ) = 0 
      ) 
    BEGIN 
     INSERT INTO Engineer (
      EmpNo 
      ,EngNo 
      ,Eng_Type 
      ,FName 
      ,LName 
      ,DOB 
      ,Eng_Address 
      ,Enter_date 
      ,ProNo 
      ) 
     VALUES (
      @EmpNo 
      ,@EngNo 
      ,@Eng_Type 
      ,@FName 
      ,@LName 
      ,@DOB 
      ,@Eng_Address 
      ,@Temp_Date 
      ,@ProNo 
      ) 
    END 
    ELSE 
     PRINT 'Employee Number is already in use' 
END 
Смежные вопросы