Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何检查当前所有行的列是空的还是空的(“”)?_Sql_Tsql - Fatal编程技术网

Sql 如何检查当前所有行的列是空的还是空的(“”)?

Sql 如何检查当前所有行的列是空的还是空的(“”)?,sql,tsql,Sql,Tsql,我有一个有100多个空闲字段的表。我想制作一个脚本,检查存在的所有行的列是否为null或空 我该怎么做?我想在以后使它成为动态的,这样它就可以对每一列执行此操作,并在临时表中插入列名,以显示哪些列是可用的。如果我没有弄错,您需要检查给定列中的所有行是空的还是空的。它不应该报告只有一些空字段或空字段的列 为此,您可以使用“不存在”选项。检查是否不存在行,列不为空或不为空 SELECT '<column_name>' column_name WHERE NOT EXITS

我有一个有100多个空闲字段的表。我想制作一个脚本,检查存在的所有行的列是否为null或空


我该怎么做?我想在以后使它成为动态的,这样它就可以对每一列执行此操作,并在临时表中插入列名,以显示哪些列是可用的。

如果我没有弄错,您需要检查给定列中的所有行是空的还是空的。它不应该报告只有一些空字段或空字段的列

为此,您可以使用“不存在”选项。检查是否不存在行,列不为空或不为空

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>';