【发布时间】:2015-11-16 14:00:32
【问题描述】:
我想知道我是否可以运行临时查询来查看表是否在其任何列中包含任何 NULL 值。该表有 100 多列,因此手动执行此操作会非常痛苦。
【问题讨论】:
-
是否所有(或至少大部分)100 多列允许 NULL 值?
我想知道我是否可以运行临时查询来查看表是否在其任何列中包含任何 NULL 值。该表有 100 多列,因此手动执行此操作会非常痛苦。
【问题讨论】:
你可以这样试试:
DECLARE @tb NVARCHAR(255) = N'dbo.[table]';
DECLARE @sql NVARCHAR(MAX) = N'SELECT * FROM ' + @tb
+ ' WHERE 1 = 0';
SELECT @sql += N' OR ' + QUOTENAME(name) + ' IS NULL'
FROM sys.columns
WHERE [object_id] = OBJECT_ID(@tb);
EXEC sp_executesql @sql;
【讨论】: