if exists (select * from sysobjects where id = object_id('dbo.sp_DeleteKeyDups') and sysstat & 0xf = 4) drop procedure dbo.sp_DeleteKeyDups GO Create Procedure sp_DeleteKeyDups ( @table_name varchar(30) , @field_name varchar(30) = 'formula_key' ) As exec( 'select ' + @field_name + ', dups=count(' + @field_name + ') ' + 'into #tbl_1 ' + 'from ' + @table_name + ' ' + 'group by ' + @field_name + ' ' + 'having count(' + @field_name + ') > 1 ' + 'delete from ' + @table_name + ' ' + 'where ' + @field_name + ' in (select ' + @field_name + ' from #tbl_1) ') return (0) GO