如何在SQL Server中查找没有自动增量主键的表

时间:2018-12-26 06:14:48

标签: sql sql-server

我有一个包含数百个表的数据库。随着时间的流逝,多个开发人员已为此进行工作,并且他们还多次创建了新表。现在,其中一些始终将主键保留为自动增量/身份,而有些则没有。我想获取没有主键作为IDENTITY的表的名称。

是否有任何查询可以帮助我解决此问题,而不是手动检查所有表?

1 个答案:

答案 0 :(得分:2)

尝试此脚本

SELECT 
    DB_NAME() AS Database_Name
    ,sc.name AS Schema_Name
    ,t.name AS Table_Name
    FROM sys.tables t
        INNER JOIN sys.schemas sc 
            ON t.schema_id = sc.schema_id
    WHERE OBJECTPROPERTY(t.object_id,'TableHasIdentity') = 0
        AND t.type = 'U'
    ORDER BY t.name