Olá a todos,
Abaixo temos duas consultas de SQL Server, para identificar tabelas que possuem e não possuem chaves primarias.
Essa primeira consulta, retornar todas as tabelas que possuem chave primaria.
select
sc.name as 'Schema',kc.name as 'Nome PK',tb.name as 'Tabela'
from sys.key_constraints kc
inner join sys.tables tb
on kc.parent_object_id = tb.object_id
inner join sys.schemas sc
on kc.schema_id = sc.schema_id
where
kc.type = 'PK'
Com essa segunda consulta podemos identificar todas as tabelas que não possuem chaves primarias, em uma tabelas, as chaves primarias são extremamente importantes, ela se refere a um identificador único do registro que não se repete, é usado para localizar valores em uma tabela.
select sc.name as 'Schema',tb.name as 'Tabela'
from
sys.tables tb
inner join sys.schemas sc on tb.schema_id = sc.schema_id
where tb.type = 'U'
and not exists(
SELECT kc.name
from sys.key_constraints kc where kc.parent_object_id = tb.object_id
and kc.schema_id = sc.schema_id
and kc.type = 'PK'
)
Até a próxima
Thiago Silva Santos
DBA SQL Server
Microsoft Certified Professional