2017-08-29 1 views
0

Énoncé du problème - Vous voulez créer une procédure qui acceptera une entrée d'entier.Vous voulez créer une procédure qui acceptera une entrée d'entier, comparez-la avec le nombre de tables et sur true créez une table de sauvegarde

  • Comparez cette entrée entière avec le nombre de lignes du tableau A si apparié puis créer une copie de la table A -si ne correspond pas prendre la différence de comptage et le courrier électronique à la liste requise email.
+2

ce qui est un "compte de la table". Qu'avez-vous essayé jusqu'à présent? –

+0

Sauvegarder la table signifie que vous voulez créer une nouvelle table avec ces données ou mettre à jour les données inexistantes dans une table? –

+0

Avez-vous essayé quelque chose? Si oui, pourquoi cela n'a-t-il pas fonctionné? Si non, pourquoi pas? – HoneyBadger

Répondre

0
DECLARE @DealCount int 
SET @DealCount =1234 

IF @DealCount = (SELECT count(*) from A) 
    THEN (INSERT INTO NEW_TABLE from A) 

ELSE 
    SELECT count(*)- @DealCount from A 
0

Cela vous aide

DECLARE @CheckCount  INT=15, --Input your data count 
     @CheckTableCount INT, 
     @TableWithDate DATE =Getdate(), 
     @Sql    NVARCHAR(max), 
     @myRecipientList VARCHAR(max), 
     @DiffTableCount INT 

IF EXISTS(SELECT Count(1) 
      FROM employees) 
    BEGIN 
     SELECT @CheckTableCount = Count(1) 
     FROM employees 

     IF (@CheckTableCount = @CheckCount) 
     BEGIN 
      SET @Sql=N' SELECT * INTO TableName_' 
        + Replace(Cast(@TableWithDate AS VARCHAR(10)), '-', '') 
        + ' FROM EMPLOYEES WHERE 1=1' 

      PRINT @Sql 

      EXECUTE(@Sql) 
     END 
     ELSE 
     BEGIN 
      SELECT @CheckTableCount = Count(1) 
      FROM employees 

      SELECT @DiffTableCount = @CheckTableCount - @CheckCount 

      SET @myRecipientList = (Stuff((SELECT ';' + emailaddress 
              FROM table 
              FOR xml path('')), 1, 1, '')) 

      EXEC msdb.dbo.Sp_send_dbmail 
       @profile_name = 'DBMail', 
       @recipients = @myRecipientList, 
       @subject = 'There is difference in table count', 
       @attach_query_result_as_file = 1; 
     END 
    END