Genera filtriGenerate Filters

La finestra di dialogo Genera filtri consente di definire un filtro di riga in una tabella in una pubblicazione di tipo merge. Durante la replica, il filtro viene esteso automaticamente alle altre tabelle correlate tramite relazioni di chiave esterna.The Generate Filters dialog box allows you to define a row filter on one table in a merge publication; replication then automatically extends the filter to other tables that are related through foreign key relationships. Se ad esempio si definisce un filtro in una tabella clienti in modo che contenga solo dati su clienti francesi, la replica estenderà tale filtro affinché nelle tabelle degli ordini e dei dettagli ordine correlate vengano incluse solo informazioni relative ai clienti francesi.For example, if you define a filter on a customer table so that it only contains data on French customers, replication extends that filter so that related orders and order details tables contain only information related to French customers.

OpzioniOptions

Questa finestra di dialogo prevede un processo in tre passaggi per la creazione di un filtro di riga in una tabella.This dialog box involves a three-step process to create a row filter on a table. Il filtro viene quindi esteso alle tabelle correlate a quella su cui viene applicato il filtro tramite relazioni di chiave esterna e primaria.The filter is then extended to the tables related to the filtered table through primary key and foreign key relationships. Si supponga ad esempio di disporre delle tre tabelle Cliente, IntestazioneOrdineVenditae DettagliOrdineVendita, in cui Cliente è correlata a IntestazioneOrdineVenditae IntestazioneOrdineVendita è correlata a DettagliOrdineVendita. Se si applica un filtro di riga a Cliente, la replica estenderà tale filtro a IntestazioneOrdineVendita e a DettagliOrdineVendita.For example, given the three tables Customer, SalesOrderHeader, and SalesOrderDetail, with a relationship between Customer and SalesOrderHeader, and a relationship between SalesOrderHeader and SalesOrderDetail, apply a row filter to Customer, and replication extends that filter to SalesOrderHeader and SalesOrderDetail.

  1. Selezionare la tabella da filtrare.Select the table to filter.

    Selezionare una tabella dall'elenco a discesa.Select a table from the drop-down list box. Le tabelle verranno visualizzate nella casella di riepilogo solo se sono state selezionate nella pagina Articoli .Tables appear in the list box only if they were selected on the Articles page.

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

    Consente di definire una nuova istruzione per il filtro.Define a new filter statement. 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 [tableowner].[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.

    Importante

    Per motivi relativi alle prestazioni, è consigliabile evitare di applicare funzioni ai nomi di colonna nelle clausole di filtro di riga con parametri, come LEFT([MyColumn]) = SUSER_SNAME().For performance reasons, we recommended that you not apply functions to column names in parameterized row filter clauses, 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ù sottoscrizioni.Specify how many subscriptions will receive data from this table.

    Solo MicrosoftMicrosoft SQL Server 2005SQL Server 2005 e versioni successive. and later versions 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 un filtro, fare clic su OK per chiudere la finestra di dialogo.After you have added a filter, click OK to exit 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 will be notified and will be able to edit the filter statement.

    Al termine dell'analisi dell'istruzione, la replica creerà i filtri join necessari.After the statement is parsed, replication creates the necessary join filters. Se non è stato ancora configurato il server di distribuzione per il server di pubblicazione su cui viene eseguita la procedura guidata, verrà chiesto di eseguire tale operazione.If you have not yet configured the Distributor for the Publisher against which this wizard is running, you are prompted to configure it.

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