To find the count of Empty OR Null Columns in a table

2011-08-21

DECLARE @tblName as VARCHAR(50)
SET @tblName = 'dbo.YourTableName'
DECLARE @tblWPCustProfColumns TABLE (ID int IDENTITY(1,1),FieldName VARCHAR(50))
INSERT INTO @tblWPCustProfColumns
SELECT name FROM sys.columns WHERE object_id = OBJECT_ID(@tblName)

DECLARE @MinID INT
DECLARE @MaxID  INT
SELECT @MinID = MIN(ID) FROM @tblWPCustProfColumns
SELECT @MaxID = MAX(ID) FROM @tblWPCustProfColumns
While @MinID <= @MaxID
begin
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @CountEmpty varchar(30);
DECLARE @col Varchar(30);

SELECT @col =      FieldName FROM @tblWPCustProfColumns WHERE ID = @MinID

SET @SQLString = N' SELECT @CountEmptyOUT = COUNT(*) FROM '+ @tblName +' WHERE ' + @col + '='''' OR ' + @col + ' IS NULL';
SET @ParmDefinition = N'@CountEmptyOUT varchar(30) OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition,@CountEmptyOUT=@CountEmpty OUTPUT;
IF @CountEmpty>0
BEGIN
SELECT @col,@CountEmpty
END
Set @MinID = @MinID + 1
end


0 comments: