Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Znajdź pola, które nie są używane (mają wszystkie wartości null)

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;

Wszystkie kolumny, które wychodzą 0, mają wszystkie wartości null (chyba że kolumna Total_Count również wyjdzie 0, w którym to przypadku tabela jest pusta). Pamiętaj, że to zapytanie będzie dość kosztowne w przypadku dużej tabeli.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Niestandardowe formatowanie daty/godziny w SQL Server

  2. Uruchamianie sum w widoku SQL

  3. Przechowywanie daty Tylko w SQL Server 2005

  4. Uzyskiwanie Hibernate i SQL Server do przyjemnej zabawy z VARCHAR i NVARCHAR

  5. Wyzwalacze SQL Server - kolejność wykonywania