segunda-feira, 25 de janeiro de 2010

Como verificar se uma tabela não tem chave primária? Isso compromete a performance

Assim:
SELECT t.table_name,
       CASE
         WHEN c.constraint_type IS NULL
         THEN 'NO'
         ELSE 'YES'
       END AS tem_pk
FROM   information_schema.tables t
       LEFT OUTER JOIN (SELECT *
                        FROM   information_schema.table_constraints
                        WHERE  constraint_type = 'PRIMARY KEY'
                               AND table_schema = 'SEU_SCHEMA'
                               AND table_catalog = 'SUA_BASE') c
         ON c.table_name = t.table_name
WHERE  t.table_name NOT LIKE '%sy%'
       AND t.table_name NOT LIKE '%MS%'

Nenhum comentário:

Postar um comentário