sp_changemergefilter (Transact-SQL)

Si applica a:SQL Server

Consente di modificare alcune proprietà del filtro di merge. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Convenzioni di sintassi Transact-SQL

Sintassi

sp_changemergefilter
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    , [ @filtername = ] N'filtername'
    , [ @property = ] N'property'
    , [ @value = ] N'value'
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Argomenti

[ @publication = ] N'publication'

Nome della pubblicazione. @publication è sysname, senza impostazione predefinita.

[ @article = ] N'article'

Nome dell'articolo. @article è sysname, senza impostazione predefinita.

[ @filtername = ] N'filtername'

Nome corrente del filtro. @filtername è sysname, senza impostazione predefinita.

[ @property = ] N'property'

Nome della proprietà da modificare. @property è sysname, senza impostazione predefinita.

[ @value = ] N'value'

Nuovo valore della proprietà specificata. @value è nvarchar(1000), senza impostazione predefinita.

Nella tabella seguente vengono descritte le proprietà degli articoli e i valori per tali proprietà.

Proprietà Valore Descrizione
filter_type 1 Filtro join.

Questa opzione è necessaria per supportare i Sottoscrittori di SQL Server Compact.
2 Relazione tra record logici.
3 Il filtro join è anche una relazione tra record logici.
filtername Nome del filtro.
join_articlename Nome dell'articolo di join.
join_filterclause Clausola di filtro.
join_unique_key true Il join è basato su una chiave univoca.
false Il join non è in una chiave univoca.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Segnala che l'azione eseguita da questa stored procedure potrebbe invalidare uno snapshot esistente. @force_invalidate_snapshot è bit, con il valore predefinito 0.

  • 0 specifica che le modifiche apportate all'articolo di merge non causano l'invalidità dello snapshot. Se la stored procedure rileva che la modifica richiede un nuovo snapshot, viene generato un errore e non viene apportata alcuna modifica.

  • 1 significa che le modifiche apportate all'articolo di merge potrebbero causare l'invalidità dello snapshot e, se sono presenti sottoscrizioni esistenti che richiedono un nuovo snapshot, concede l'autorizzazione per contrassegnare lo snapshot esistente come obsoleto e un nuovo snapshot generato.

[ @force_reinit_subscription = ] force_reinit_subscription

Segnala che l'azione eseguita dalla stored procedure potrebbe richiedere la reinizializzazione delle sottoscrizioni esistenti. @force_reinit_subscription è bit, con un valore predefinito .0

  • 0 specifica che le modifiche apportate all'articolo di merge non causano la reinizializzazione della sottoscrizione. Se la stored procedure rileva che la modifica richiede la reinizializzazione delle sottoscrizioni esistenti, viene generato un errore e non viene apportata alcuna modifica.

  • 1 significa che le modifiche apportate all'articolo di merge reinizializzare le sottoscrizioni esistenti e concede l'autorizzazione per la reinizializzazione della sottoscrizione.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

sp_changemergefilter viene usato nella replica di tipo merge.

Per modificare il filtro in un articolo di merge, è necessario ricreare lo snapshot, se disponibile. Questa operazione viene eseguita impostando il @force_invalidate_snapshot su 1. Se sono presenti sottoscrizioni a questo articolo, è necessario reinizializzare le sottoscrizioni, che viene eseguita impostando il @force_reinit_subscription su 1.

Per utilizzare record logici, la pubblicazione e gli articoli devono soddisfare diversi requisiti. Per altre informazioni, vedere Raggruppare modifiche alle righe correlate con record logici.

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o db_owner ruolo predefinito del database possono eseguire sp_changemergefilter.