2016-05-26 32 views
3

Ich mache eine Aufgabe und ich war an diesem Ort für ein paar Tage fest.SQL: Alle vorgeschlagenen GetDate() Methoden funktionieren nicht

Getdate() funktioniert nicht für diesen Vorgang. Ich habe alle vorgeschlagenen Methoden verwendet.

Aber wieder muss ich hier die update-Anweisung verwenden. Gibt es keinen Prozedur-Code, um es ohne eine update-Anweisung hier zu machen?

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

MySQL oder MS SQL Server? Bitte kennzeichnen Sie keine nicht betroffenen Produkte! – jarlh

+0

@ Jarlh - Es tut mir leid. Ich dachte, alles kommt unter der SQL-Datenbank-Design. –

+0

Ich kann nicht sehen, dass Sie "@Temp_Date" irgendwo im SP verwenden. Versuchen Sie, den Wert "@Temp_Date" zurückzugeben und ihn "@Enter_Date" zuzuordnen? Wenn ja, dann Google, wie man einen Wert von SP – Alex

Antwort

0

Sie nicht @temp_date müssen, ändern @enter_date zu 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' 

Weitere ich Ihren Code empfehlen Formatierung und nicht das Präfix nicht Ihre sps mit SP_ .Hier some issues you may see werden, wenn Sie SP_ verwenden

0

Wo haben Sie @Temp_Date verwendet? Sie haben einen Wert angegeben und ihm einen Wert zugewiesen, ihn jedoch nie in Ihrem verbleibenden Code verwendet. Bitte beziehen Sie sich auf diese sp unten. Ich habe deine Variable anstelle von @Enter_Date verwendet.

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