declare @msg varchar(200);
declare @stmt nvarchar(2048);
declare @rc integer;
declare @table_name varchar(248)
set @table_name='sys.columns'
set @stmt = N'select @rc=count(*) from '+ @table_name
exec sp_executesql @stmt , N'@rc int output', @rc=@RC OUTPUT
set @msg='Records in table ' + @table_name + ' :' + cast(@rc as varchar) ;
select @msg ;
The syntax is that =@RC is not required, but not always flagged as an error