Exemplo de consulta em SqlServer para encontrar uma chave Estrangeira
Postado em : 17/12/2023
Descobrindo Chaves Estrangeiras: Explorando Relacionamentos em Bancos de Dados SQL
Introdução
A interconexão entre tabelas em bancos de dados é mantida por meio de chaves estrangeiras, fundamentais para a integridade dos dados. Neste artigo, exploramos uma ferramenta poderosa para identificar e compreender essas chaves estrangeiras por meio de consultas SQL.
Exemplo de consulta para encontrar a chave estrangeira
Imagine um contexto em que você deseja identificar onde uma chave estrangeira chamada FK_Empresas_ID
está aplicada em um banco de dados. Para isso, você pode executar a seguinte consulta:
SELECT OBJECT_NAME(f.parent_object_id) AS Tabela, COL_NAME(fc.parent_object_id, fc.parent_column_id) AS Coluna FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id WHERE f.name = 'FK_Empresas_ID'
Explicando a consulta
-
SELECT OBJECT_NAME(f.parent_object_id) AS Tabela
: Esta parte da consulta recupera o nome da tabela onde a chave estrangeira está definida. Usa-seOBJECT_NAME
para obter o nome do objeto (tabela) com base noparent_object_id
da visualizaçãosys.foreign_keys
. -
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS Coluna
: Aqui, é obtido o nome da coluna que representa a chave estrangeira. Utiliza-seCOL_NAME
para buscar o nome da coluna com base noparent_object_id
eparent_column_id
da visualizaçãosys.foreign_key_columns
. -
sys.foreign_keys
esys.foreign_key_columns
: São visualizações do sistema no SQL Server que armazenam metadados sobre as chaves estrangeiras e suas colunas associadas.
Compreendendo o comando
A execução dessa consulta fornece uma visão detalhada sobre a tabela e a coluna onde a chave estrangeira 'FK_Pdv_Empresas' está ativa. Essa informação é crucial para entender os relacionamentos entre as tabelas no banco de dados.
Conclusão
A exploração de chaves estrangeiras por meio de consultas SQL é fundamental para a compreensão e manutenção da estrutura do banco de dados. Essa capacidade de identificar relacionamentos facilita a garantia da integridade dos dados e auxilia no desenvolvimento e administração eficazes do banco de dados SQL.
Links Relacionados
- Arquitetura CQRS
- Arrays em C#(CSharp)
- Aula 11 - Acessando Banco de Dados SQL SERVER - Criando Consultas em sua aplicação em Asp.Net MVC 4 com C#(CSharp)
- Aula 12 - MS SQL Server - Comandos SQL e Stored Procedures em sua aplicação em Asp.Net MVC 4 com C#(CSharp)
- Aula 15 - Download das ferramentas necessárias para o nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Aula 16 - Criando o banco de dados e configurando o SQLServer para nosso curso de Asp.Net MVC 4 com C#(CSharp)
- Aula 17 - Criando o banco de dados e configurando o SQLServer EXPRESS para nosso curso de Asp.Net MVC 4 com C#(CSharp)
- C#(CSharp) Converter inteiro para Hexadecimal e Hexadecimal para Inteiro
- C#(CSharp) Exemplo de Conversão de um List<> de uma classe qualquer para um DataTable.
- C#(CSharp) Função para verificar se um determinado número é Primo
- Calcular Idade C# (CSharp), diferença anos entre duas datas
- Classe com Métodos de extensão C# (CSharp)
- Classe para fazer Conexão MS SqlServer em C#(CSharp)
- Classe para Ler e Gravar Cookies - Asp.Net MVC 4 com C# (CSharp)
- Classe para tratar valores nulos vindos de nossa Query SQL, C#(CSharp).
- Classes anônimas em C#(CSharp)
- Comando nameof() C#(CSharp)
- Comando NULLIF no SQLServer.
- Compare duas strings ignorando maiúsculas e minúsculas C#(CSharp).
- Consulta SQLServer com paginação
- Criando Tabelas Temporarias em MS-SqlServer
- Criar Classes Dinâmicas usando DynamicObject e ExpandoObject em C# (CSharp)
- Curso Instalando e configurando o MS SQL Server Express 2014 e Management Studio 2014
- Definir o dia em um DateTime.
- DELETE CASCADE no SqlServer
- Desvendando o Poder da Função STRING_AGG no SQL Server para concatenação de dados
- Diferença entre parâmetros REF e OUT em C#(CSharp)
- DROP TABLE IF EXISTS no SQL Server.
- Emitir sons pelo auto-falante do computador em C# (CSharp)
- Estrangulando um monólito C#(CSharp)
- Exemplo de acesso a dados com SQL Server em C#.
- Exemplo de Stored Procedure com tratamento de erros e transação. (SqlServer)
- Exemplos de Stored Procedure SQL Server
- Explorando Tipos de Dados Personalizados no SqlServer: Utilidade e Impacto na Performance
- Extensões para DataReader, tratando valores de suas consultas SQL (DataReaderExtensions) C#(CSharp)
- Fazendo a paginação de consultas em MySQL com o comando Limit e Offset
- Formatando datas SqlServer
- Formatar CEP em C# (CSharp)
- Função para devolver data do próximo dia da semana informado C#(CSharp).
- Função para gerar tabela com listagem contendo intervalo entre duas datas. (SqlServer)
- Gerando números randômicos para sorteio de jogos de azar C#(CSharp)
- Grafana Loki e .NET Framework com C#
- Incrementando e decrementando variáveis em C#(CSharp)
- Injeção de dependência
- Ler string de conexão (connectionStrings) do arquivo Web.config Asp.Net MVC co C#(CSharp)
- Métodos de extensão C#
- MS SQL Server Express 2014 e Management Studio 2014 - Download e Intalação
- Não consigo apagar um Banco de dados (can not drop database) - MS-SQL Server.
- Ordenando um array com o comando OrderBy C#(CSharp)
- Parar um loop foreach usando o comando break C#(CSharp).
- Quando utilizar NOLOCK e READPAST no SqlServer.
- Recuperar a URL da página anterior em Asp.Net C# (CSharp)
- Recuperar a URL da página atual em Asp.Net C# (CSharp)
- Recuperar para código C# (CSharp) o valor de um componente de nossa página
- Restaurando um Banco de dados quando este fica travado informando estar restaurando, MS-SQL Server.
- Retorna o IP da conexão do Cliente em Asp.Net MVC com C# (CSharp)
- Retorna os dados do Navegador do Cliente em Asp.Net MVC com C# (CSharp)
- Rodando Script MS-SQL Server diretamente pela linha de comando
- Salvando CSV com cabeçalho no SQL Server Management Studio
- Separar String de caracteres C#(CSharp)
- Serilog e .NET Framework com C#
- Tipos de dados em C# (CSharp)
- Tipos de dados primitivos em C#(CSharp)
- Trabalhando com Cursores em MS-SQL Server.
- Tratando colunas nulas em sua Query SqlServer
- Update/Delete com INNER em MS-SQL Server
- Validando Valores nulos vindos de nosso Banco de Dados C#(CSharp)
- Validar Modelos com Data Annotation e Windows Form Application C#(CSharp)
- Verificar se uma string é um digito em C# (CSharp)