alter procedure discrepant emp,emp_new
@tablename varchar(50),
@tablename2 varchar(50)
as
begin
declare
@SQLCount nvarchar(4000),
@Table1Count int,
@Table2Count int
set @SQLCount='select count(1) from '
set @SQLCount='select @Table1Count = count(1) from ' + @tablename
EXEC sp_executesql @SQLCount, N'@Table1Count int out', @Table1Count OUT
set @SQLCount='select @Table2Count = count(1) from ' + @tablename2
EXEC sp_executesql @SQLCount, N'@Table2Count int out', @Table2Count OUT
----EXEC sp_executesql将SQL返回值放入新的变量之中
if @Table1Count = @Table2Count
begin
print @Table1Count
print @Table2Count
print '两表数据量相同'
end
else
begin
print '两表数据量不同'
end
declare @SQL_Except nvarchar(max)
set @SQL_Except='select * from ';
exec (@SQL_Except+@tablename + ' except ' + @SQL_Except+@tablename2)
end