Welcome to Sign in | Help

Merge replication, join filter pe relatii m:n

  •  07-08-2008, 11:04 AM

    Merge replication, join filter pe relatii m:n


    Am urmatoare problema,

    trebuie sa filtrez dinamic o replica in SQL Server 2005 cu subscriptii SQL Compact 3.5 si am urmatorul scenariu, o tabela Company si o tabela CompanyRelations care e folosita pentru a crea relatii m:n intre comapanii:

    Table : [Company] ( IDCompany PK identity, <restul coloanelor ...>)
    Table:  [CompanyRelations] (CompanyID FK references IDCompany , CompanyRefID FK references IDCompany,<restul coloanelor ...>)

    Deci tabela CompanyRelations are 2 FK-uri spre tabela Company, iar eu trebuie sa folosesc un join filter pentru a filtra tabela CompanyRelations in functie de tabela Company.

    Ce se intampla in cazul meu:

    Am de ex urmatoarele date:

    [Company]

    ID, Name
    1   Company1
    2   Company2
    3   Company3

    [CompanyRelations]

    CompanyID, CompanyRefID
    1  2
    1  3

    Daca tabela Company e filtrata pernu ID-urile 1 si 2 iar join filtrer e  [Company].[IDCompany] = [CompanyRef].[CompanyID]

    atunci prin join filter se filtreaza row-urile (1 2) si (1 3) din CompanyRelations. Row-ul (1 3) va ajunge pe subscriber fara ca sa existe compania cu ID 3 si de aici sincronizarea da o eroare de referential integrity la insert.

    Eu trebuie sa filtrez tabela CompanyRelations astfel incat sa contina row-uri ce fac referire la companiiile filtrate prin ambele foreign key-uri. insa un join filter nu ma lasa sa spefifit decat clauza de join adica ce vine dupa Join [table] ON ...

    As aprecia daca ar putea cineva sa-mi dea un hint cum as putea sa filtrez o tabela de relatii m:n pentru merge replication in functie de alta tabela.

               Mersi,
                        Cata

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems