This procedure is for SQL Server, please take a idea and feel free to modify and use this procedure as per your need. This Procedure giving 3 fields in Output, 1st field giving column Name, 2nd field giving total count of records in table, and 3rd field having distinct records of a field.
CREATE TABLE #tempCount ( TableName NVARCHAR(500) , AllTableCount NVARCHAR(500) , ColumnDistinctCount NVARCHAR(500) ) ALTER PROCEDURE countOfAField AS DECLARE @table_name NVARCHAR(50) , @column_name NVARCHAR(50) , @SQL_v NVARCHAR(500) DECLARE cur_col CURSOR FOR SELECT TABLE_NAME , column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name = 'XXXXX' OPEN cur_col FETCH NEXT FROM cur_col INTO @table_name , @column_name WHILE @@FETCH_STATUS = 0 BEGIN SET @SQL_v = 'Insert into #tempCount Select ''' + @table_name + ''' as TableName , count(*) as AllTableCount ,count(distinct ' + @column_name + ') AS ColumnDistinctCount from ' + @table_name PRINT @SQL_v EXEC sp_executesql @SQL_v FETCH NEXT FROM cur_col INTO @table_name , @column_name END SELECT * FROM #tempCount CLOSE cur_col DEALLOCATE cur_col
EXEC countOfAField
No comments:
Post a Comment