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.

    Dal momento che i filtri join rappresentano un'estensione dei filtri di riga, è necessario definire prima un filtro di riga da estendere con un join. Dopo aver definito un filtro join, è possibile estenderlo con un altro filtro join.

  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.
      ms152744.Caution(it-it,SQL.90).gifAttenzione:
      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. Scegliere OK.

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

Per modificare un filtro join

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

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

  3. Scegliere OK.

Per eliminare un filtro join

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

Vedere anche

Attività

Procedura: Definizione di una relazione tra record logici degli articoli di tabelle di merge (SQL Server Management Studio)
Procedura: Definizione e modifica di un filtro di riga con parametri per un articolo di merge (SQL Server Management Studio)
Procedura: Definizione e modifica di un filtro di riga statico (SQL Server Management Studio)
Procedura: Reinizializzazione di una sottoscrizione (SQL Server Management Studio)

Concetti

Filtri join
Filtri di riga con parametri

Altre risorse

How to: Define and Modify a Join Filter Between Merge Articles (Replication Transact-SQL Programming)

Guida in linea e informazioni

Assistenza su SQL Server 2005