我正在做作业,我被困在这个地方大约几天。
Getdate()不适用于此过程。我使用了所有建议的方法。
但我必须在这里使用更新语句。那么在没有使用更新语句的情况下,是否有任何程序代码可以使用?
Update Engineer set Enter_date = getdate() where EmpNo = 'Emp001000'
答案 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