Published on

April 22, 2015

Como verificar a chave primária e a chave estrangeira no SQL Server

Ao trabalhar com o SQL Server, é importante saber se uma tabela possui uma chave primária ou chave estrangeira. Essas informações podem ser úteis por várias razões, como garantir a integridade dos dados e otimizar o desempenho das consultas. Neste artigo, exploraremos diferentes métodos para verificar a chave primária e a chave estrangeira no SQL Server.

Verificando a chave primária

Para verificar se uma tabela possui uma chave primária, você pode usar os seguintes métodos:

Método 1: Usando a Stored Procedure do sistema sp_pkeys

Você pode executar a stored procedure do sistema sp_pkeys para obter informações sobre a chave primária de uma tabela. Aqui está um exemplo:

EXEC sp_PKEYS product_master

O resultado fornecerá detalhes sobre a chave primária da tabela product_master.

Método 2: Usando a função Objectproperty

Outra maneira de verificar uma chave primária é usando a função Objectproperty. Aqui está um exemplo:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_NAME),'TABLEHASPRIMARYKEY')=1
AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME

Esta consulta retornará uma lista de tabelas que possuem uma chave primária.

Verificando a chave estrangeira

Para verificar se uma tabela possui uma chave estrangeira, você pode usar o seguinte método:

Método: Usando a função Objectproperty

Assim como verificar uma chave primária, você pode usar a função Objectproperty para determinar se uma tabela possui uma chave estrangeira. Aqui está um exemplo:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_NAME),'TABLEHASFOREIGNKEY')=1
AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME

Esta consulta fornecerá uma lista de tabelas que possuem uma chave estrangeira.

Verificando tabelas sem chave primária ou chave estrangeira

Se você deseja identificar tabelas que não possuem uma chave primária ou chave estrangeira, você pode usar o seguinte método:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_NAME),'TABLEHASPRIMARYKEY')=0
AND OBJECTPROPERTY(OBJECT_ID(TABLE_NAME),'TABLEHASFOREIGNKEY')=0
AND TABLE_TYPE='BASE TABLE'
ORDER BY TABLE_NAME

Esta consulta retornará uma lista de tabelas que não possuem uma chave primária ou chave estrangeira.

Ao usar esses métodos, você pode facilmente determinar se uma tabela possui uma chave primária ou chave estrangeira no SQL Server. Esse conhecimento pode ajudá-lo em vários aspectos da administração de banco de dados e otimização de consultas.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.