我有一个包含数百个表的数据库。随着时间的流逝,多个开发人员已为此进行工作,并且他们还多次创建了新表。现在,其中一些始终将主键保留为自动增量/身份,而有些则没有。我想获取没有主键作为IDENTITY的表的名称。
是否有任何查询可以帮助我解决此问题,而不是手动检查所有表?
答案 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