none
Descobrir quais registros estão ligados a constraint RRS feed

  • Pergunta

  • Galera.

      Tenho um banco e neste possui tabelas de cliente/forecedores , onde preciso apagar alguns registros que não foram usados, e lançamentos ligados por constraints.  Tem como eu saber através de código ou pelo Management quais registros de clientes/ fornecedores estão ligados a laçamentos visualizando as contraints?

    obs.:

    1 fornecedor possui 0 ou vários lançamentos.

    Obrigado.

    terça-feira, 27 de março de 2012 19:21

Respostas

  • jmarqDeveloper,

    Para visualizar todas as foreigns keys, utilize:

    USE NomeBancoDeDados;
    GO
    SELECT f.name AS ForeignKey,
    OBJECT_NAME(f.parent_object_id) AS TableName,
    COL_NAME(fc.parent_object_id,
    fc.parent_column_id) AS ColumnName,
    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
    ORDER BY tablename
    

    Aonde o *NomeBancoDeDados = Ao nome do banco de dados que estão contidos essas tabelas que você deseja visualizar.

    Abs


    Luan.Moreno MTAC | MCP | MTA | MCTS | MCITP SQL Server Administrator / Developer 2008

    terça-feira, 27 de março de 2012 19:33

Todas as Respostas

  • jmarqDeveloper,

    Para visualizar todas as foreigns keys, utilize:

    USE NomeBancoDeDados;
    GO
    SELECT f.name AS ForeignKey,
    OBJECT_NAME(f.parent_object_id) AS TableName,
    COL_NAME(fc.parent_object_id,
    fc.parent_column_id) AS ColumnName,
    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
    ORDER BY tablename
    

    Aonde o *NomeBancoDeDados = Ao nome do banco de dados que estão contidos essas tabelas que você deseja visualizar.

    Abs


    Luan.Moreno MTAC | MCP | MTA | MCTS | MCITP SQL Server Administrator / Developer 2008

    terça-feira, 27 de março de 2012 19:33
  • lUAN, a sua idéia foi até boa, mas o que eu preciso é saber quais registros de uma tabela estão ligados com outros de outras tabelas.

    EX.:

    tabela     -     cli/forne      lançamento           historico

    chaves               1                1                           1

                              2                2                           2

                              3                1                          1

                              4                3                          3

    Vendo o exemplo acima podemos perceber que preciso de um código que me mostre os registros de cli/for(pk) que não foram usados em lançamento e historico como FK. No caso  acima podemos ver que o '4' não foi utilizado.

    Obs.: O código tem que buscar mais de uma tabela.

    Conto com a ajuda de vcs, enquanto vou tentando também.

    Obrigado.


    quarta-feira, 28 de março de 2012 19:01