在应使用条件的上下文(在 'begin' 附近)中指定了非布尔类型的表达式。关键字 'else' 附近有语法错误。


drop procedure discrepant;
discrepant emp, emp_new

create proc discrepant
@tablename varchar(50),
@tablename2 varchar(50)
as
begin
declare 
        @a varchar(50),
        @b varchar(50),
        @SQL varchar(50)
        set    @a = @tablename
        set    @b = @tablename2
        set    @SQL='select count(1) from ' 

     if  ('('+@SQL+@a +')' +  ' = ' + '('+@SQL+@b+')')
     begin 
          print '两表数据量相同'
      end 
 else 
      begin 
          print '两表数据量不同'
      end 
end 

消息 4145,级别 15,状态 1,过程 discrepant,行 15 [批起始行 3]
在应使用条件的上下文(在 'begin' 附近)中指定了非布尔类型的表达式。
消息 156,级别 15,状态 1,过程 discrepant,行 18 [批起始行 3]
关键字 'else' 附近有语法错误。