sp_changesubstatus (Transact-SQL)
Se aplica a: SQL Server Azure SQL Managed Instance
Cambia el estado de un suscriptor existente. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicación.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_changesubstatus
[ [ @publication = ] N'publication' ]
[ , [ @article = ] N'article' ]
[ , [ @subscriber = ] N'subscriber' ]
, [ @status = ] N'status'
[ , [ @previous_status = ] N'previous_status' ]
[ , [ @destination_db = ] N'destination_db' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @optional_command_line = ] N'optional_command_line' ]
[ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
[ , [ @from_auto_sync = ] from_auto_sync ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @offloadagent = ] offloadagent ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @dts_package_name = ] N'dts_package_name' ]
[ , [ @dts_package_password = ] N'dts_package_password' ]
[ , [ @dts_package_location = ] dts_package_location ]
[ , [ @skipobjectactivation = ] skipobjectactivation ]
[ , [ @distribution_job_name = ] N'distribution_job_name' ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @ignore_distributor_failure = ] ignore_distributor_failure ]
[ ; ]
Argumentos
[ @publication = ] N'publication'
Nombre de la publicación. @publication es sysname, con un valor predeterminado de %
. Si no se especifica @publication , todas las publicaciones se verán afectadas.
[ @article = ] N'article'
Nombre del artículo. @article es sysname, con un valor predeterminado de %
. Debe ser único para la publicación. Si no se especifica @article , todos los artículos se verán afectados.
[ @subscriber = ] N'subscriber'
Nombre del suscriptor del que se va a cambiar el estado. @subscriber es sysname, con un valor predeterminado de %
. Si no se especifica @subscriber , se cambia el estado de todos los suscriptores al artículo especificado.
[ @status = ] N'status'
Estado de la suscripción en la syssubscriptions
tabla. @status es sysname y puede ser uno de estos valores.
Valor | Descripción |
---|---|
active |
El suscriptor está sincronizado y recibe datos. |
inactive |
Existe una entrada de suscriptor sin que haya una suscripción. |
subscribed |
El suscriptor solicita datos, pero aún no está sincronizado. |
[ @previous_status = ] N'previous_status'
Estado anterior de la suscripción. @previous_status es sysname, con un valor predeterminado de NULL
. Este parámetro permite cambiar todas las suscripciones que tengan ese estado, lo que permite agrupar funciones en un conjunto específico de suscripciones (por ejemplo, volver a establecer todas las suscripciones activas en subscribed
).
[ @destination_db = ] N'destination_db'
El nombre de la base de datos de destino. @destination_db es sysname, con un valor predeterminado de %
.
[ @frequency_type = ] frequency_type
Especifica la frecuencia con la que programar la tarea de distribución. @frequency_type es int, con un valor predeterminado de NULL
.
[ @frequency_interval = ] frequency_interval
Valor que se va a aplicar a la frecuencia establecida por @frequency_type. @frequency_interval es int, con un valor predeterminado de NULL
.
[ @frequency_relative_interval = ] frequency_relative_interval
Fecha de la tarea de distribución. Este parámetro se usa cuando @frequency_type se establece en 32 (relativo mensual). @frequency_relative_interval es int y puede ser uno de estos valores.
Valor | Descripción |
---|---|
1 |
First |
2 |
Segundo |
4 |
Tercero |
8 |
Cuarta |
16 |
Último |
NULL (valor predeterminado) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Factor de periodicidad utilizado por @frequency_type. @frequency_recurrence_factor es int, con un valor predeterminado de NULL
.
[ @frequency_subday = ] frequency_subday
Especifica la frecuencia, en minutos, para volver a programar durante el período definido. @frequency_subday es int y puede ser uno de estos valores.
Valor | Descripción |
---|---|
1 |
Una vez |
2 |
Second |
4 |
Minute |
8 |
Hora |
NULL (valor predeterminado) |
[ @frequency_subday_interval = ] frequency_subday_interval
Intervalo de @frequency_subday. @frequency_subday_interval es int, con un valor predeterminado de NULL
.
[ @active_start_time_of_day = ] active_start_time_of_day
Hora del día en que la tarea de distribución se programa por primera vez, con HHmmss
el formato . @active_start_time_of_day es int, con un valor predeterminado de NULL
.
[ @active_end_time_of_day = ] active_end_time_of_day
Hora del día en que la tarea de distribución deja de programarse, con el formato HHmmss
. @active_end_time_of_day es int, con un valor predeterminado de NULL
.
[ @active_start_date = ] active_start_date
Fecha en que la tarea de distribución está programada por primera vez, con formato .yyyyMMdd
@active_start_date es int, con un valor predeterminado de NULL
.
[ @active_end_date = ] active_end_date
Fecha en la que la tarea de distribución deja de programarse, con el formato yyyyMMdd
. @active_end_date es int, con un valor predeterminado de NULL
.
[ @optional_command_line = ] N'optional_command_line'
Símbolo del sistema opcional. @optional_command_line es nvarchar(4000), con un valor predeterminado de NULL
.
[ @distribution_jobid = ] distribution_jobid OUTPUT
Identificador de trabajo del Agente de distribución en el distribuidor de la suscripción al cambiar el estado de la suscripción de inactivo a activo. En otros casos, no se define. Si hay más de una Agente de distribución implicada en una sola llamada a este procedimiento almacenado, el resultado no se define. @distribution_jobid es un parámetro OUTPUT de tipo binary(16).
[ @from_auto_sync = ] from_auto_sync
Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
[ @ignore_distributor = ] ignore_distributor
Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
[ @offloadagent = ] offloadagent
Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Establecer @offloadagent en un valor distinto de 0
genera un error.
[ @offloadserver = ] N'offloadserver'
Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Establecer @offloadserver en cualquier valor que no sea NULL genera un error.
[ @dts_package_name = ] N'dts_package_name'
Especifica el nombre del paquete de Servicios de transformación de datos (DTS). @dts_package_name es sysname, con un valor predeterminado de NULL
. Por ejemplo, para un paquete denominado DTSPub_Package
especificaría @dts_package_name = N'DTSPub_Package'
.
[ @dts_package_password = ] N'dts_package_password'
Especifica la contraseña del paquete. @dts_package_password es nvarchar(524), con un valor predeterminado de NULL
, que especifica que la propiedad password debe dejarse sin cambios.
Nota:
Un paquete DTS debe tener una contraseña.
[ @dts_package_location = ] dts_package_location
Especifica la ubicación del paquete. @dts_package_location es int, con un valor predeterminado de 0
.
- Si
0
es , la ubicación del paquete está en el distribuidor. - Si
1
es , la ubicación del paquete está en el suscriptor.
La ubicación del paquete puede ser distributor
o subscriber
.
[ @skipobjectactivation = ] skipobjectactivation
Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
[ @distribution_job_name = ] N'distribution_job_name'
Nombre del trabajo de distribución. @distribution_job_name es sysname, con un valor predeterminado de NULL
.
[ @publisher = ] N'publisher'
Especifica un publicador que no es de SQL Server. @publisher es sysname, con un valor predeterminado de NULL
.
@publisher no se debe usar al cambiar las propiedades del artículo en un publicador de SQL Server.
[ @ignore_distributor_failure = ] ignore_distributor_failure
Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
sp_changesubstatus
se usa en la replicación de instantáneas y la replicación transaccional.
sp_changesubstatus
cambia el estado del suscriptor de la syssubscriptions
tabla con el estado cambiado. Si es necesario, actualiza el estado del artículo en la sysarticles
tabla para indicar activo o inactivo. Si es necesario, establece la marca de replicación activada o desactivada en la sysobjects
tabla para la tabla replicada.
Permisos
Solo los miembros del rol fijo de servidor sysadmin , db_owner rol fijo de base de datos o el creador de la suscripción pueden ejecutar sp_changesubstatus
.