Share via


sp_repldropcolumn (Transact-SQL)

Elimina una colonna da un articolo di tabella esistente pubblicato. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Nota importanteImportante

Questa stored procedure è obsoleta e viene supportata solo per motivi di compatibilità con le versioni precedenti. È consigliabile utilizzarla solo con i server di pubblicazione di Microsoft SQL Server 2000 e i Sottoscrittori di ripubblicazione di SQL Server 2000. Questa stored procedure non deve essere utilizzata nelle colonne con tipi di dati introdotti in SQL Server 2005 o SQL Server 2008.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_repldropcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' 
    [ , [ @from_agent = ] from_agent ] 
    [ , [ @schema_change_script = ] 'schema_change_script' ] 
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ] 
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ] 

Argomenti

  • [ @source_object = ] 'source_object'
    Nome dell'articolo di tabella contenente la colonna da eliminare. source_object è di tipo nvarchar(258) e non prevede alcun valore predefinito.

  • [ @column = ] 'column'
    Nome della colonna nella tabella da eliminare. column è di tipo sysname e non prevede alcun valore predefinito.

  • [ @from_agent = ] from_agent
    Specifica se la stored procedure viene eseguita da un agente di replica. from_agent è di tipo int e il valore predefinito è 0. Il valore 1 viene utilizzato quando la stored procedure viene eseguita da un agente di replica, mentre in tutti gli altri casi è consigliabile utilizzare il valore predefinito 0.

  • [ @schema_change_script = ] 'schema_change_script'
    Specifica il nome e il percorso di uno script di SQL Server utilizzato per modificare le stored procedure personalizzate generate dal sistema. schema_change_script è di tipo nvarchar(4000) e il valore predefinito è NULL. La replica consente di sostituire una o più stored procedure predefinite utilizzate per la replica transazionale con stored procedure personalizzate definite dall'utente. schema_change_script viene eseguito dopo una modifica dello schema in un articolo di tabella replicato utilizzando sp_repldropcolumn e consente di eseguire una delle operazioni seguenti:

    • Se le stored procedure personalizzate vengono rigenerate automaticamente, è possibile utilizzare schema_change_script per eliminare le stored procedure personalizzate e sostituirle con stored procedure personalizzate definite dall'utente che supportano il nuovo schema.

    • Se le stored procedure personalizzate non vengono rigenerate automaticamente, è possibile utilizzare schema_change_scriptper rigenerarle o per creare stored procedure personalizzate definite dall'utente.

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Abilita o disabilita la possibilità di invalidare uno snapshot. force_invalidate_snapshot è di tipo bit e il valore predefinito è 1.

    Il valore 1 specifica che le modifiche all'articolo possono invalidare lo snapshot. In tal caso, il valore 1 consente l'esecuzione del nuovo snapshot.

    Il valore 0 specifica che le modifiche apportate all'articolo non invalidano lo snapshot.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    Abilita o disabilita la possibilità di reinizializzare la sottoscrizione. force_reinit_subscription è di tipo bit e il valore predefinito è 0.

    Il valore 0 specifica che le modifiche apportate all'articolo non causano la reinizializzazione della sottoscrizione.

    Il valore 1 specifica che le modifiche apportate all'articolo possono causare la reinizializzazione della sottoscrizione. In tal caso, il valore 1 consente la reinizializzazione della sottoscrizione.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_repldropcolumn è obsoleta. Per rimuovere una colonna da un articolo di tabella replicato è consigliabile eseguire i comandi DDL (Data Definition Language) sulla tabella pubblicata. Se la replica DDL è attivata, i comandi DDL vengono replicati automaticamente durante la replica. Per ulteriori informazioni, vedere Modifiche allo schema nei database di pubblicazione.

sp_repladdcolumn è ancora necessaria durante la propagazione delle modifiche DDL dai Sottoscrittori di ripubblicazione in esecuzione in una versione precedente dei Sottoscrittori di Microsoft SQL Server 2000.

sp_repldropcolumn viene utilizzata in tutti i tipi di replica.

Quando si utilizza sp_repldropcolumn e si apporta una modifica allo schema di un articolo che appartiene a una pubblicazione che utilizza un pacchetto Data Transformation Services (DTS), tale modifica non viene propagata al Sottoscrittore e le procedure personalizzate per INSERT/UPDATE/DELETE non vengono rigenerate nei Sottoscrittori. È quindi necessario rigenerare il pacchetto DTS manualmente e apportare la modifica di schema corrispondente nei Sottoscrittori. Se non si esegue l'aggiornamento dello schema, l'agente di distribuzione potrebbe non applicare le modifiche successive. Prima di modificare uno schema, verificare che non esista alcuna transazione in sospeso da recapitare.

Nota importanteImportante

Dopo l'esecuzione di sp_repldropcolumn è necessario eseguire un backup del database di pubblicazione. Se non si esegue questa operazione, dopo il ripristino del database di pubblicazione può verificarsi un errore del processo di merge.

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin sul server di pubblicazione o i membri dei ruoli predefiniti del database db_owner o db_ddladmin nel database di pubblicazione possono eseguire sp_repldropcolumn.