Condividi tramite


Procedura: Definizione e modifica di un filtro join tra articoli di merge (SQL Server Management Studio)

Definire, modificare ed eliminare filtri join nella pagina Filtro righe tabella di Creazione guidata nuova pubblicazione o nella pagina Filtro righe della finestra di dialogo Proprietà pubblicazione - <Publication>. Per ulteriori informazioni sull'utilizzo della procedura guidata e sull'accesso a questa finestra di dialogo, vedere Procedura: Creazione di una pubblicazione e definizione di articoli (SQL Server Management Studio) e Procedura: Visualizzazione e modifica delle proprietà delle pubblicazioni e degli articoli (SQL Server Management Studio).

Nota

Se si aggiunge, modifica o elimina un filtro join tramite la finestra di dialogo Proprietà pubblicazione - <Publication> dopo l'inizializzazione delle sottoscrizioni della pubblicazione, è necessario generare un nuovo snapshot e reinizializzare tutte le sottoscrizioni dopo aver apportato le modifiche desiderate. Per ulteriori informazioni sui requisiti per la modifica delle proprietà, vedere Modifica delle proprietà di pubblicazioni e articoli.

È possibile creare manualmente filtri join per un set di tabelle oppure generare automaticamente i filtri tramite la replica in base alle relazioni tra le chiavi esterne e le chiavi primarie definite nelle tabelle. Per ulteriori informazioni sulla generazione automatica di un set di filtri join, vedere Procedura: Generazione automatica di un insieme di filtri join tra gli articoli di merge (SQL Server Management Studio).

Per definire un filtro join

  1. Nella pagina Filtro righe tabella di Creazione guidata nuova pubblicazione o nella pagina Filtro righe di Proprietà pubblicazione - <Publication> selezionare un filtro di riga o un filtro join esistente nel riquadro Tabelle filtrate.

    Nota

    Per creare un filtro join, la pubblicazione deve contenere almeno due tabelle correlate. Dal momento che i filtri join rappresentano un'estensione dei filtri di riga, è necessario definire prima un filtro di riga in una tabella da estendere con un join a un'altra tabella. Dopo aver definito un filtro join, è possibile estenderlo con un altro filtro join se la pubblicazione contiene ulteriori tabelle correlate.

  2. Fare clic su Aggiungi e quindi su Aggiungi join per estendere il filtro selezionato.

  3. Creare l'istruzione per il join. Selezionare Per creare l'istruzione verrà utilizzato il generatore o L'istruzione per il join verrà scritta manualmente.

    • Se si sceglie di utilizzare il generatore, utilizzare le colonne Congiunzione, Colonna tabella filtrata, Operatore e Colonna tabella unita in join nella griglia per creare l'istruzione per il join.

      In tutte le colonne della griglia è disponibile una casella combinata a discesa, che consente di selezionare due colonne e un operatore (=, <>, <=, <, >=, > e like). I risultati vengono visualizzati nell'area di testo Anteprima. Se il join è associato a più di due colonne, selezionare una congiunzione (AND oppure OR) dalla colonna Congiunzione e quindi immettere altre due colonne e un operatore.

    • Se si sceglie l'opzione manuale, scrivere manualmente l'istruzione per il join nell'area di testo Istruzione per il join. Utilizzare le caselle di riepilogo Colonne tabella filtrata e Colonne tabella unita in join per trascinare le colonne nell'area di testo Istruzione per il join.

    • L'istruzione per il join completa sarà simile alla seguente:

      SELECT <published_columns> FROM [Sales].[SalesOrderHeader] INNER JOIN [Sales].[SalesOrderDetail] ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID]
      

      Per la clausola JOIN è necessario utilizzare nomi composti da due parti, in quanto la denominazione a tre e quattro parti non è supportata.

  4. Specificare le opzioni per il join:

    • Se la colonna nella quale viene eseguito il join della tabella filtrata, ovvero la tabella padre, è univoca, selezionare Chiave univoca.

      Nota di attenzioneAttenzione

      La selezione di questa opzione indica che la relazione tra le tabelle figlio e le tabelle padre in un filtro join è di tipo uno-a-uno o uno-a-molti. Utilizzare questa opzione solo se esiste un vincolo nella colonna di join della tabella figlio che garantisce l'univocità. Un'impostazione non corretta di questa opzione può impedire la convergenza dei dati.

    • Per impostazione predefinita, durante la sincronizzazione la replica di tipo merge elabora le modifiche riga per riga. Per elaborare come singola unità modiche correlate presenti sia in righe della tabella filtrata sia della tabella unita in join, selezionare Record logico (solo per Microsoft SQL Server 2005 e versioni successive). Questa opzione è disponibile solo se gli articoli e la pubblicazione soddisfano i requisiti per l'utilizzo di record logici. Per ulteriori informazioni vedere la sezione relativa agli aspetti dell'utilizzo di record logici in Raggruppamento di modifiche alla righe correlate con record logici.

  5. Fare clic su OK.

  6. Se è visualizzata la finestra di dialogo Proprietà pubblicazione - <Pubblication> fare clic su OK per salvare e chiudere la finestra di dialogo.

Per modificare un filtro join

  1. Nella pagina Filtro righe tabella di Creazione guidata nuova pubblicazione o nella pagina Filtro righe di Proprietà pubblicazione - <Pubblication> selezionare un filtro nel riquadro Tabelle filtrate e quindi fare clic su Modifica.

  2. Nella finestra di dialogo Modifica join modificare il filtro.

  3. Fare clic su OK.

Per eliminare un filtro join

  • Nella pagina Filtro righe tabella di Creazione guidata nuova pubblicazione o nella pagina Filtro righe di Proprietà pubblicazione - <Pubblication> selezionare un filtro nel riquadro Tabelle filtrate e quindi fare clic su Elimina. Se il filtro join eliminato è esteso da altri join, anch'essi verranno eliminati.