SQL:所有建议的GetDate()方法都不起作用

时间:2016-05-26 09:41:13

标签: sql-server stored-procedures sql-server-2012 getdate

我正在做作业,我被困在这个地方大约几天。

Getdate()不适用于此过程。我使用了所有建议的方法。

但我必须在这里使用更新语句。那么在没有使用更新语句的情况下,是否有任何程序代码可以使用?

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

2 个答案:

答案 0 :(得分: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'

此外,我建议您格式化代码,另外请不要在sps前加上SP_。当您使用SP _时,some issues you may see为{_ 3}}

答案 1 :(得分:0)

你在哪里使用@Temp_Date。您声明并为其分配了一个值,但从未在剩余的代码中使用过。请参考下面的sp。我用你的变量而不是@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
相关问题