2016-05-26 40 views
3

私は割り当てをしていて、私はこの場所で約2,3日間立ち往生していました。SQL:すべてのGetDate()メソッドが機能していません

この手順でGetdate()が機能していません。私はすべての提案された方法を使用しました。

もう一度ここで更新文を使用する必要があります。ここで更新ステートメントを使用せずにプロシージャー・コードを作成する方法はありませんか?

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

MySQLまたはMS SQL Server?関与していない製品にはタグを付けないでください! – jarlh

+0

@ jarlh - すみません。私はすべてがSQLデータベース設計の下に来ると思った。 –

+0

SPのどこにでも "@Temp_Date"を使用することはできません。値 "@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_ .HereであなたのSPSの接頭辞はありませんあなたはSP_

を使用する場合 some issues you may seeです
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 
関連する問題