我对SQL查询比较陌生。SQL-识别可为空的值
我有我的SQL数据库(1500)大量表的
我的问题如下:
我需要确定是从哪个有默认值的所有表空列?
我怎么能去所有的表?
任何帮助或相同的教程也将非常有帮助。
谢谢
我对SQL查询比较陌生。SQL-识别可为空的值
我有我的SQL数据库(1500)大量表的
我的问题如下:
我需要确定是从哪个有默认值的所有表空列?
我怎么能去所有的表?
任何帮助或相同的教程也将非常有帮助。
谢谢
您可以使用INFORMATION_SCHEMA得到这个数据,列“COLUMN_DEFAULT”和“IS_NULLABLE”会给你你所需要的。
SELECT *
FROM information_schema.columns c with (Nolock)
使用SQL Server的自描述的特点: -
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'YES'
OR COLUMN_DEFAULT IS NOT NULL
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
你好,谢谢你。有一个问题。你为什么指定“with(nolock)”?我为我的无知道歉,但我没有得到它。 – JJunior
这不是必需的,但它使查询在检索数据时锁定表。 – msmucker0527
谢谢你的解释。 – JJunior