2017-08-29 25 views
0

问题描述 - 希望创建一个接受整数输入的过程。想要创建一个接受整数输入的过程,与表的数量和真正的创建备份表进行比较

  • 如果匹配然后创建表格中的 - 如果不匹配,采取计时差和电子邮件,以电子邮件的要求列表的副本比较这个整数输入与表A的行数。
+2

什么是 “表的计数”。你试过什么了? –

+0

备份表意味着是否要用该数据创建新表或更新一个表中不存在的数据? – 2017-08-29 07:47:12

+0

你尝试过什么吗?如果是这样,为什么它没有工作?如果不是,为什么不呢? – HoneyBadger

回答

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

这可能有助于你

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 
相关问题