在SQL 2000数据库中查找所有可为空的列

时间:2009-07-11 11:14:49

标签: sql sql-server null constraints

如何找出整个数据库中插入允许的NULL值的列?

2 个答案:

答案 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