Sql 如何检查当前所有行的列是空的还是空的(“”)?
我有一个有100多个空闲字段的表。我想制作一个脚本,检查存在的所有行的列是否为null或空Sql 如何检查当前所有行的列是空的还是空的(“”)?,sql,tsql,Sql,Tsql,我有一个有100多个空闲字段的表。我想制作一个脚本,检查存在的所有行的列是否为null或空 我该怎么做?我想在以后使它成为动态的,这样它就可以对每一列执行此操作,并在临时表中插入列名,以显示哪些列是可用的。如果我没有弄错,您需要检查给定列中的所有行是空的还是空的。它不应该报告只有一些空字段或空字段的列 为此,您可以使用“不存在”选项。检查是否不存在行,列不为空或不为空 SELECT '<column_name>' column_name WHERE NOT EXITS
我该怎么做?我想在以后使它成为动态的,这样它就可以对每一列执行此操作,并在临时表中插入列名,以显示哪些列是可用的。如果我没有弄错,您需要检查给定列中的所有行是空的还是空的。它不应该报告只有一些空字段或空字段的列 为此,您可以使用“不存在”选项。检查是否不存在行,列不为空或不为空
SELECT '<column_name>' column_name
WHERE NOT EXITS (SELECT *
FROM elbat
WHERE isnull(<column_name>, '') <> '');
替换为实际的列名
要对多个列名重用它,必须使用动态SQL。将查询构建为nvarchar,在正确的位置插入所需的列名,并使用或执行查询
您可以从目录中获取表的列名
SELECT c.name
FROM sys.columns c
INNER JOIN sys.tables t
ON t.object_id = c.object_id
INNER JOIN sys.schemas s
ON s.schema_id = t.schema_id
WHERE s.name = '<schema_name>'
AND t.name = '<table_name>';
替换为架构名称和表名称
使用循环遍历目录中的结果。其中\u列为null或\u列=?
SELECT c.name
FROM sys.columns c
INNER JOIN sys.tables t
ON t.object_id = c.object_id
INNER JOIN sys.schemas s
ON s.schema_id = t.schema_id
WHERE s.name = '<schema_name>'
AND t.name = '<table_name>';