Aggiungi filtro o Modifica filtroAdd or Edit Filter

Le finestre di dialogo Aggiungi filtro e Modifica filtro consentono di aggiungere e modificare i filtri di riga statica o di riga con parametri.The Add Filter and Edit Filter dialog boxes allow you to add and edit static row filters and parameterized row filters.

Nota

Per modificare un filtro in una pubblicazione esistente, è necessario un nuovo snapshot per la pubblicazione.Editing a filter in an existing publication requires a new snapshot for the publication. Se la pubblicazione dispone di sottoscrizioni, queste ultime devono essere reinizializzate.If a publication has subscriptions, the subscriptions must be reinitialized. Per altre informazioni sulle modifiche delle proprietà, vedere Modificare le proprietà di pubblicazioni e articoli.For more information about property changes, see Change Publication and Article Properties.

In tutti i tipi di pubblicazione possono essere inclusi filtri statici. Nelle pubblicazioni di tipo merge possono essere inoltre inclusi filtri con parametri.All publication types can include static filters; merge publications can also include parameterized filters. Un filtro statico viene valutato al momento della creazione della pubblicazione: tutti i sottoscrittori della pubblicazione ricevono gli stessi dati.A static filter is evaluated when the publication is created: all Subscribers to the publication receive the same data. Un filtro con parametri viene invece valutato durante la sincronizzazione della replica: Sottoscrittori distinti possono ricevere diverse partizioni di dati, in base al nome dell'account di accesso o del computer di ognuno.A parameterized filter is evaluated during replication synchronization: different Subscribers can receive different partitions of data based on the login or computer name of each Subscriber. Per poter esaminare esempi di ogni tipo di filtro, fare clic sul collegamento Istruzione di esempio .Click the Example statements link in the dialog box to see examples of each type of filter. Per altre informazioni sulle opzioni di filtro, vedere Filtrare i dati pubblicati.For more information about filtering options, see Filter Published Data.

L'applicazione di filtri di riga consente di specificare un subset di righe che devono essere pubblicate da una tabella.Using row filters, you can specify a subset of rows to be published from a table. I filtri di riga possono essere utilizzati per eliminare le righe che non devono essere visualizzate dagli utenti, ad esempio le righe in cui sono contenute informazioni delicate o riservate, oppure per creare diverse partizioni di dati da inviare ai vari Sottoscrittori.Row filters can be used to eliminate rows that users do not need to see (such as rows that contain sensitive or confidential information), or to create different partitions of data that are sent to different Subscribers. La pubblicazione di diverse partizioni di dati in diversi Sottoscrittori può contribuire a evitare i conflitti che si verificherebbero se più Sottoscrittori aggiornassero gli stessi dati.Publishing different partitions of data to different Subscribers can also help avoid conflicts that would otherwise be caused by multiple Subscribers updating the same data.

OpzioniOptions

Questa finestra di dialogo prevede un processo in due passaggi per le pubblicazioni snapshot e transazionali e un processo in tre passaggi per le pubblicazioni di tipo merge.This dialog box involves a two-step process for transactional and snapshot publications and a three-step process for merge publications. Per ogni tipo di pubblicazione è necessaria la selezione di una tabella da filtrare e di una o più colonne da includere nel filtro. Quest'ultimo è definito come clausola WHERE standard.All publication types require you to select a table to be filtered and one or more columns to be included in the filter; the filter is defined as a standard WHERE clause.

  1. Selezionare la tabella da filtrareSelect the table to filter

    Se è in corso la modifica di un filtro esistente, la selezione della tabella non può essere modificata.If you are editing an existing filter, the table selection cannot be changed. Se è in corso l'aggiunta di un nuovo filtro, selezionare una tabella dall'elenco a discesa.If you are adding a new filter, select a table from the drop-down list box. Le tabelle vengono visualizzate nella casella di riepilogo solo se sono selezionate nella pagina Articoli e non dispongono ancora di un filtro di riga.Tables appear in the list box only if they were selected on the Articles page and do not already have a row filter. Per definire un nuovo filtro di riga quando per la tabella ne è già disponibile uno:If a table has a row filter and you want to define a new one:

    1. Nella finestra di dialogo Aggiungi filtro fare clic su Annulla .Click Cancel on the Add Filter dialog box.

    2. Nella pagina Filtro righe tabella selezionare la tabella nel riquadro del filtro e fare clic su Modifica.Select the table in the filter pane on the Filter Table Rows page and click Edit.

    3. Nella finestra di dialogo Modifica filtro modificare un filtro esistente.Edit an existing filter in the Edit Filter dialog box.

  2. Completare l'istruzione per il filtro per identificare le righe della tabella che verranno ricevute dai SottoscrittoriComplete the filter statement to identify which table rows Subscribers will receive

    Consente di definire una nuova istruzione per il filtro o di modificarne una esistente.Define a new filter statement or edit an existing one. Nella casella di riepilogo Colonne vengono elencate tutte le colonne in fase di pubblicazione appartenenti alla tabella selezionata in Selezionare la tabella da filtrare.The Columns list box lists all the columns that you are publishing from the table you selected in Select the table to filter. L'area di testo Istruzione per il filtro contiene il testo predefinito, nel formato seguente:The Filter statement text area includes the default text, which is in the form of:

    SELECT <published_columns> FROM [schema].[tablename] WHERE

    Questo testo non può essere modificato. Digitare la clausola di filtro dopo la parola chiave WHERE utilizzando la sintassi Transact-SQLTransact-SQL standard.This text cannot be changed; type the filter clause after the WHERE keyword using standard Transact-SQLTransact-SQL syntax. Se il server di pubblicazione è un server di pubblicazione Oracle, la clausola WHERE deve essere conforme alla sintassi delle query Oracle.If the Publisher is an Oracle Publisher, the WHERE clause must be compliant with Oracle query syntax. Se possibile, evitare di usare filtri complessi.Avoid using complex filters when possible. I filtri statici e con parametri possono migliorare i tempi di elaborazione per le pubblicazioni ed è pertanto opportuno che le istruzioni per il filtro siano le più semplici possibile.Both static and parameterized filters increase processing time for publications; therefore you should keep filter statements as simple as possible.

    Importante

    Per motivi di prestazioni, è consigliabile non applicare funzioni ai nomi di colonna, ad esempio LEFT([MyColumn]) = SUSER_SNAME(), nelle clausole di filtro di riga con parametri per pubblicazioni di tipo merge.For performance reasons, we recommended that you not apply functions to column names in parameterized row filter clauses for merge publications, such as LEFT([MyColumn]) = SUSER_SNAME(). Se si usano HOST_NAME in una clausola di filtro e si sostituisce il valore HOST_NAME, può essere necessario convertire i tipi di dati tramite l'istruzione CONVERT.If you use HOST_NAME in a filter clause and override the HOST_NAME value, it might be necessary to convert data types using CONVERT. Per altre informazioni sulle procedure consigliate in questo caso, vedere la sezione relativa alla sostituzione del valore HOST_NAME() nell'argomento Parameterized Row Filters.For more information about best practices for this case, see the section "Overriding the HOST_NAME() Value" in the topic Parameterized Row Filters.

  3. Specificare se i dati di questa tabella dovranno essere inviati a una o più sottoscrizioniSpecify how many subscriptions will receive data from this table

    Solo MicrosoftMicrosoft SQL Server 2005SQL Server 2005 e versioni successive, solo replica di tipo merge. and later versions only; merge replication only. La replica di tipo merge consente di specificare il tipo di partizioni più adatte ai dati e all'applicazione.Merge replication allows you to specify the type of partitions that are best suited to your data and application. Se si seleziona Una riga di questa tabella verrà inviata a una sola sottoscrizione, viene impostata l'opzione relativa alle partizioni non sovrapposte della replica di tipo merge.If you select A row from this table will go to only one subscription, merge replication sets the nonoverlapping partitions option. Le partizioni non sovrapposte vengono utilizzate insieme alle partizioni pre-calcolate per migliorare le prestazioni per ridurre il costo di caricamento associato alle partizioni pre-calcolate.Nonoverlapping partitions work in conjunction with precomputed partitions to improve performance, with nonoverlapping partitions minimizing the upload cost associated with precomputed partitions. Il vantaggio a livello di prestazioni delle partizioni non sovrapposte è più evidente quando i filtri con parametri e i filtri join utilizzati sono più complessi.The performance benefit of nonoverlapping partitions is more noticeable when the parameterized filters and join filters used are more complex. Se si seleziona questa opzione è necessario, tuttavia, verificare che i dati vengano partizionati in modo che una riga non possa essere replicata in più Sottoscrittori.If you select this option, you must ensure that the data is partitioned in such a way that a row cannot be replicated to more than one Subscriber. Per altre informazioni, vedere la sezione relativa all'impostazione delle opzioni delle partizioni nell'argomento Parameterized Row Filters.For more information, see the section "Setting 'partition options'" in the topic Parameterized Row Filters.

    Dopo aver aggiunto o modificato un filtro, fare clic su OK per salvare le modifiche e chiudere la finestra di dialogo.After you have added or edited a filter, click OK to save changes and close the dialog box. Il filtro specificato viene analizzato ed eseguito sulla tabella nella clausola SELECT.The filter you specified is parsed and run against the table in the SELECT clause. Se nell'istruzione di filtro sono presenti errori di sintassi o di altro tipo, verrà visualizzato un apposito messaggio di notifica e sarà possibile modificare l'istruzione.If the filter statement contains syntax errors or other problems, you are notified and are able to edit the filter statement.

Vedere ancheSee Also

Create a Publication Create a Publication
Visualizzare e modificare le proprietà della pubblicazione View and Modify Publication Properties
Filtrare i dati pubblicati Filter Published Data
Filtri di join Join Filters
Parameterized Row Filters Parameterized Row Filters
Pubblicare dati e oggetti di database Publish Data and Database Objects