benjaminvr

Output amount of nulls for each column in table

Apr 3rd, 2023 (edited)
1,438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.83 KB | None | 0 0
  1. -- Outputs the amount of nulls for each column in a table based on its data
  2. -- Runtime: 2 minutes for 7.5 million rows, YMMV
  3. DECLARE @tableschema NVARCHAR(MAX);
  4. DECLARE @tablename NVARCHAR(MAX);
  5. DECLARE @query NVARCHAR(MAX);
  6.  
  7. -- Arguments:
  8. USE dbname;
  9. SET @tableschema = 'dbo';
  10. SET @tablename = '';
  11.  
  12. SET @query = (
  13.     SELECT
  14.         'SELECT DISTINCT '
  15.         + string_agg(
  16.                 CAST(
  17.                     FORMATMESSAGE('  (
  18.                         SELECT COUNT(*)
  19.                         FROM %s.%s
  20.                         WHERE %s IS NULL
  21.                         ) AS %s'
  22.                         , table_schema, table_name, column_name, column_name
  23.                     )
  24.                     as nvarchar(max)
  25.                     )
  26.             , ', ')
  27.         + ' FROM ' + table_schema + '.' + table_name
  28.         + ';'
  29.     FROM information_schema.columns
  30.     WHERE TABLE_NAME=@tablename
  31.     AND TABLE_SCHEMA=@tableschema
  32.     GROUP BY table_catalog, table_schema, table_name
  33. )
  34.  
  35. EXECUTE sp_executesql @query;
Advertisement
Add Comment
Please, Sign In to add comment