none
Ver relacionamentos com chave extrangeira em outra tabela RRS feed

  • Pergunta

  • Pessoal estou com um banco aqui que tem uma tabela chamada ALIQUOTAS e possui um campo chamado COD_ALIQUOTA(PK). Precisava saber quais tabelas do banco que possuem relação (Chave estrangeira) com este campo

    Tem algum código para fazer isso?

    Obrigado :)

    terça-feira, 24 de junho de 2014 18:19

Respostas

  • Cara utilizando a ferramenta sql server manager vc pode fazer isso facilmente, tanto criando diagramas para ver o fluxo quanto visualizando as dependências da tabela ou seja quais tabelas estão ligadas a ela, segue abaixo uma imagem ilustrativa.


    Nome : Romy G. Moura Cargo: Analista Programador

    • Marcado como Resposta Jalber Romano terça-feira, 24 de junho de 2014 18:47
    terça-feira, 24 de junho de 2014 18:44

Todas as Respostas

  • Eu costumo usar este deste link.

    http://blog.sqlauthority.com/2009/02/26/sql-server-2008-find-relationship-of-foreign-key-and-primary-key-using-t-sql-find-tables-with-foreign-key-constraint-in-database/

    Só add o where pra filtrar.

    Abs;

    terça-feira, 24 de junho de 2014 18:29
  • Mas no Where eu coloco o nome da tabela ou campo?
    terça-feira, 24 de junho de 2014 18:34
  • Cara utilizando a ferramenta sql server manager vc pode fazer isso facilmente, tanto criando diagramas para ver o fluxo quanto visualizando as dependências da tabela ou seja quais tabelas estão ligadas a ela, segue abaixo uma imagem ilustrativa.


    Nome : Romy G. Moura Cargo: Analista Programador

    • Marcado como Resposta Jalber Romano terça-feira, 24 de junho de 2014 18:47
    terça-feira, 24 de junho de 2014 18:44
  • Obrigado Romy Moura Riot

    :)

    terça-feira, 24 de junho de 2014 18:47
  • Mas no Where eu coloco o nome da tabela ou campo?

    Por exemplo...

    SELECT f.name AS ForeignKey, SCHEMA_NAME(f.SCHEMA_ID) SchemaName, OBJECT_NAME(f.parent_object_id) AS TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) AS ColumnName, SCHEMA_NAME(o.SCHEMA_ID) ReferenceSchemaName, OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName, COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS ReferenceColumnName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id where OBJECT_NAME (f.referenced_object_id) = 'ALIQUOTAS' -- Tabela

    -- ou por coluna.... por tabela e coluna remove o where e adiciona um and --where COL_NAME(fc.referenced_object_id,fc.referenced_column_id) = 'COD_ALIQUOTA' -- Coluna GO


    Abs;


    • Editado Andrei.F terça-feira, 24 de junho de 2014 18:51
    • Sugerido como Resposta Romy Moura terça-feira, 24 de junho de 2014 19:03
    terça-feira, 24 de junho de 2014 18:51
  • Mas no Where eu coloco o nome da tabela ou campo?

    Por exemplo...

    SELECT f.name AS ForeignKey, SCHEMA_NAME(f.SCHEMA_ID) SchemaName, OBJECT_NAME(f.parent_object_id) AS TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) AS ColumnName, SCHEMA_NAME(o.SCHEMA_ID) ReferenceSchemaName, OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName, COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS ReferenceColumnName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id where OBJECT_NAME (f.referenced_object_id) = 'ALIQUOTAS' -- Tabela

    -- ou por coluna.... por tabela e coluna remove o where e adiciona um and --where COL_NAME(fc.referenced_object_id,fc.referenced_column_id) = 'COD_ALIQUOTA' -- Coluna GO


    Abs;


    podemos também utilizar EXEC sp_fkeys 'tbl_cargo'.

    Nome : Romy G. Moura Cargo: Analista Programador

    terça-feira, 24 de junho de 2014 19:03