如何找出整个数据库中插入允许的NULL值的列?
答案 0 :(得分:10)
我手头没有sql,但查询就像这样
SELECT * FROM information_schema.columns WHERE is_nullable = 'YES'
通常,搜索此标准视图,以获取有关数据库架构和结构的所有元数据信息;还有很多其他的(information_schema.tables,information_schema.constraints等)
答案 1 :(得分:0)
那些只想查看基表(而不是视图)中的列的人应该加入INFORMATION_SCHEMA.TABLES
。我还想排除系统表sysdiagrams
。
<强>查询强>
SELECT
c.TABLE_NAME,
COLUMN_NAME,
DATA_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS AS c
JOIN INFORMATION_SCHEMA.TABLES AS t ON t.TABLE_NAME = c.TABLE_NAME
WHERE
is_nullable = 'YES' AND
TABLE_TYPE = 'BASE TABLE' AND
c.TABLE_NAME != 'sysdiagrams'
ORDER BY
c.TABLE_NAME,
COLUMN_NAME
如果您在模式或表目录中有重复的表名,那么您也应该在连接中涉及这些字段,如下面的答案所示:
Differentiating tables and views in INFORMATION_SCHEMA.COLUMNS