2016-04-07 8 views
-1

SQL Serverのストアドプロシージャを使用して検証を試みました。しかし、ストアドプロシージャは機能しません。ストアドプロシージャを使用した検証

私はテーブルroomを持っています。私は部屋のバックアップとして部屋のテーブルからバックアップを得た。私はSQL Serverでストアドプロシージャを使用して確認しようとしたときにroomテーブルレコードは部屋のバックアップテーブルのレコードよりも大きいので、私は部屋のバックアップテーブルを書き直す必要があります。私は、次のコードを試してみましたが、下記のよう

CREATE PROC Sp_verify 
AS 
    IF (SELECT Count() 
     FROM Room) > (SELECT Count() 
         FROM RoomBackup) 
     BEGIN 
      DELETE RoomBackup; 

      INSERT INTO RoomBackup 
         (R_No, 
         R_Type, 
         R_stus, 
         AP_No, 
         P_Name, 
         R_Charge) 
      SELECT R_No, 
       R_Type, 
       R_stus, 
       AP_No, 
       P_Name, 
       R_Charge 
      FROM Room; 
     END 

は私に

+0

なぜあなたの手続きは 'Sp_'で始まるのですか? – MusicLovingIndianGirl

+2

ストアドプロシージャに 'SP_'を付けないでください。** [ストアドプロシージャのプレフィックスとしてsp_を使用しないでください。](https://msdn.microsoft.com/en-us/library/dd172115 v = vs.100).aspx)** –

答えて

0

変更手続きを助けてください動作していないです:

IF ((SELECT Count(1) 
     FROM Room) > (SELECT Count(1) 
         FROM RoomBackup)) 
     BEGIN 
      DELETE RoomBackup; 

      INSERT INTO RoomBackup 
         (R_No, 
         R_Type, 
         R_stus, 
         AP_No, 
         P_Name, 
         R_Charge) 
      SELECT R_No, 
       R_Type, 
       R_stus, 
       AP_No, 
       P_Name, 
       R_Charge 
      FROM Room; 
     END 

Count関数は、引数が必要です。また、囲み括弧はifの句に必要です。

関連する問題