2016-04-07 15 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

процедуру Modify, как указано ниже:

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 пункт

Смежные вопросы