Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Намерете полета, които не се използват (съдържат всички нули)

DECLARE @table NVARCHAR(512);
SET @table = N'dbo.tablename';

DECLARE @sql NVARCHAR(MAX);

SELECT @sql = N'';

SELECT @sql = @sql + QUOTENAME(name) 
     + ' = SUM(CASE WHEN ' + QUOTENAME(name) + ' IS NULL THEN 1 ELSE 0 END),'
  FROM sys.columns
  WHERE object_id = OBJECT_ID(@table)
  AND is_nullable = 1;

SELECT @sql = 'SELECT ' + @sql + ' Total_Count = COUNT(*)
  FROM ' + @table + ';';

EXEC sp_executesql @sql;

Всички колони, които излизат 0, имат всички нули (освен ако колоната Total_Count също не излиза 0, в който случай таблицата е празна). Имайте предвид, че тази заявка ще бъде доста скъпа за голяма маса.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неправилен синтаксис близо до ключовата дума 'Таблица' C# SQL

  2. Как да изберете определен брой символи отляво или отдясно на низ в SQL Server

  3. Обединете много колони в една, като запазите сходството и замените разликите

  4. Най-добрите форуми за производителност на SQL Server за помощ по най-трудните въпроси

  5. Използване на R с RODBCext и RODBC за изпълнение на SQL съхранена процедура