Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tìm các trường không được sử dụng (có tất cả các trường rỗng)

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;

Bất kỳ cột nào đi ra 0 đều có tất cả các giá trị null (trừ khi cột Total_Count cũng là 0, trong trường hợp đó bảng trống). Lưu ý rằng truy vấn này sẽ khá tốn kém trên một bảng lớn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thay đổi độ dài của varchar trong khóa chính tổng hợp?

  2. Điều gì KHÔNG phải là toán tử logic trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 121

  3. 4 Mẹo để Chạy Chẩn đoán Máy chủ SQL

  4. Các giao dịch lồng nhau trong Sql Server

  5. Làm thế nào để kiểm tra xem một Ràng buộc tồn tại trong máy chủ Sql?