2016-04-07 19 views
-1

Ich habe versucht, die gespeicherte Prozedur in SQL Server zu überprüfen. Aber die gespeicherte Prozedur funktioniert nicht.Überprüfung mit gespeicherter Prozedur

Ich habe eine Tabelle room. Ich habe das Backup vom Zimmertisch als Zimmersicherung bekommen. Ich habe versucht, in SQL Server mit gespeicherten Prozedur zu überprüfen, wenn Tabelle Datensatz größer als Raum Backup-Tabelle Rekord, so dass ich die Zimmer-Backup-Tabelle neu schreiben muss. Ich habe versucht, den folgenden Code, aber es funktioniert nicht

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 

Bitte helfen Sie mir als gegeben

+0

wurden auch umschließende Klammern benötigt. Warum wird Ihre Prozedur zuerst mit 'Sp_' benannt? – MusicLovingIndianGirl

+2

Hier ist der Grund, warum Sie 'SP_' in Ihren gespeicherten Prozeduren nicht voranstellen sollten: ** [Vermeiden Sie die Verwendung von sp_ als Präfix für gespeicherte Prozeduren] (https://msdn.microsoft.com/de-de/library/dd172115 (v = vs.100) .aspx) ** –

Antwort

0

Modify Verfahren unter:

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 Funktion erfordert ein Argument. Für if Klausel

Verwandte Themen