我对SQL查询比较陌生。
我的SQL数据库中有大量表(超过1500)
我的问题如下:
我需要从所有具有默认值的表中识别可以为空的列?
我怎样才能为所有表格着手?
任何相同的帮助或教程也会非常有用。
谢谢
答案 0 :(得分:2)
您可以使用information_schema获取此数据,“COLUMN_DEFAULT”和“IS_NULLABLE”列将为您提供所需的信息。
SELECT *
FROM information_schema.columns c with (Nolock)
答案 1 :(得分:1)
使用SQL Server的自描述功能: -
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'YES'
OR COLUMN_DEFAULT IS NOT NULL
答案 2 :(得分:1)
SELECT
OBJECT_NAME(c.object_id), *
FROM
sys.columns c
JOIN
sys.default_constrainst dc ON c.columnid = dc.parent_column_id AND c.object_id = dc.parent_object_id
WHERE
c.is_nullable = 1