sp_changesubstatus (Transact-SQL)
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 = ] 'publication' ]
[ , [ @article = ] 'article' ]
[ , [ @subscriber = ] 'subscriber' ]
, [ @status = ] 'status'
[ , [ @previous_status = ] 'previous_status' ]
[ , [ @destination_db = ] '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 = ] 'optional_command_line' ]
[ , [ @distribution_jobid = ] distribution_jobid ]
[ , [ @from_auto_sync = ] from_auto_sync ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @offloadagent= ] remote_agent_activation ]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @dts_package_name= ] 'dts_package_name' ]
[ , [ @dts_package_password= ] 'dts_package_password' ]
[ , [ @dts_package_location= ] dts_package_location ]
[ , [ @skipobjectactivation = ] skipobjectactivation
[ , [ @distribution_job_name= ] 'distribution_job_name' ]
[ , [ @publisher = ] 'publisher' ]
Argumentos
[ @publication=] 'publication'
Es el nombre de la publicación. publication es de tipo sysname y su valor predeterminado es %. Si no se especifica el parámetro publication, se verán afectadas todas las publicaciones.[ @article=] 'article'
Es el nombre del artículo. Debe ser único para la publicación. article es de tipo sysname y su valor predeterminado es %. Si no se especifica article, se verán afectados todos los artículos.[ @subscriber=] 'subscriber'
Es el nombre del suscriptor cuyo estado se va a cambiar. subscriber es de tipo sysname y su valor predeterminado es %. Si no se especifica subscriber, se cambia el estado de todos los suscriptores al artículo especificado.[ @status =] 'status'
Es el estado de la suscripción en la tabla syssubscriptions. status es de tipo sysname, no tiene ningún valor predeterminado y puede tener 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=] 'previous_status'
Es el estado anterior de la suscripción. previous_status es de tipo sysname y su valor predeterminado es NULL. Este parámetro permite cambiar las suscripciones que tengan ese estado en la actualidad, con lo que es posible agrupar funciones en un conjunto específico de suscripciones (por ejemplo, establecer de nuevo todas las suscripciones activas en subscribed).[ @destination_db=] 'destination_db'
Es el nombre de la base de datos de destino. destination_db es de tipo sysname y su valor predeterminado es %.[ @frequency_type=] frequency_type
Es la frecuencia con que se programa la tarea de distribución. frequency_type es de tipo int y su valor predeterminado es NULL.[ @frequency_interval=] frequency_interval
Es el valor que se va a aplicar a la frecuencia establecida por frequency_type. frequency_interval es de tipo int y su valor predeterminado es NULL.[ @frequency_relative_interval=] frequency_relative_interval
Es la fecha de la tarea de distribución. Este parámetro se utiliza cuando frequency_type se establece en 32 (mensualmente relativa). frequency_relative_interval es de tipo int y puede tener uno de estos valores.Valor
Descripción
1
Primero
2
Segundo
4
Tercero
8
Cuarto
16
Último
NULL (valor predeterminado)
[ @frequency_recurrence_factor=] frequency_recurrence_factor
Es el factor de repetición que se utiliza en frequency_type. frequency_recurrence_factor es de tipo int y su valor predeterminado es NULL.[ @frequency_subday=] frequency_subday
Indica la frecuencia, en minutos, con que se reprograma durante el período definido. frequency_subday es de tipo int y puede tener uno de estos valores.Valor
Descripción
1
Una vez
2
Segundo
4
Minute
8
Hour
NULL (valor predeterminado)
[ @frequency_subday_interval=] frequency_subday_interval
Es el intervalo de frequency_subday. frequency_subday_interval es de tipo int y su valor predeterminado es NULL.[ @active_start_time_of_day=] active_start_time_of_day
Es la hora del día en que la tarea de distribución se programa por primera vez, con el formato HHMMSS. active_start_time_of_day es de tipo int y su valor predeterminado es NULL.[ @active_end_time_of_day=] active_end_time_of_day
Es la hora del día en que la tarea de distribución deja de estar programada, con el formato HHMMSS. active_end_time_of_day es de tipo int y su valor predeterminado es NULL.[ @active_start_date=] active_start_date
Es la fecha en que la tarea de distribución se programa por primera vez, con el formato AAAAMMDD. active_start_date es de tipo int y su valor predeterminado es NULL.[ @active_end_date=] active_end_date
Es la fecha en la que la tarea de distribución deja de estar programada, con el formato AAAAMMDD. active_end_date es de tipo int y su valor predeterminado es NULL.[ @optional_command_line=] 'optional_command_line'
Es un símbolo del sistema opcional. optional_command_line es de tipo nvarchar(4000) y su valor predeterminado es NULL.[ @distribution_jobid=] distribution_jobid
Es el Id. de trabajo del Agente de distribución en el distribuidor de la suscripción cuando se cambia el estado de la suscripción de inactiva a activa. En otros casos, no se define. Si interviene más de un agente de distribución en una sola llamada a este procedimiento almacenado, el resultado no se define. distribution_jobid es de tipo binary(16) y su valor predeterminado es NULL.[ @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= ] remote_agent_activation
[!NOTA]
La activación remota del agente ha quedado desusada y ya no es compatible. Este parámetro solamente se admite por compatibilidad de scripts con versiones anteriores. Si se establece remote_agent_activation en un valor distinto de 0, se genera un error.
[ @offloadserver= ] 'remote_agent_server_name'
[!NOTA]
La activación remota del agente ha quedado desusada y ya no es compatible. Este parámetro solamente se admite por compatibilidad de scripts con versiones anteriores. Si se establece remote_agent_server_name en cualquier valor que no sea NULL, se genera un error.
[ @dts_package_name= ] 'dts_package_name'
Especifica el nombre del paquete de Servicios de transformación de datos (DTS). dts_package_name es de tipo sysname y su valor predeterminado es NULL. Por ejemplo, en un paquete denominado DTSPub_Package, se especificaría @dts\_package\_name = N'DTSPub_Package'.[ @dts_package_password= ] 'dts_package_password'
Especifica la contraseña del paquete. dts_package_password es de tipo sysname y su valor predeterminado es NULL, que especifica que la propiedad de contraseña se dejará 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 de tipo int y su valor predeterminado es 0. Si es 0, la ubicación del paquete es el distribuidor. Si es 1, la ubicación del paquete es 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= ] 'distribution_job_name'
Es el nombre del trabajo de distribución. distribution_job_name es de tipo sysname y su valor predeterminado es NULL.[ @publisher= ] 'publisher'
Especifica un publicador que no es de Microsoft SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.[!NOTA]
publisher no debería utilizarse cuando se cambian las propiedades del artículo de un publicador de SQL Server.
Valores de código de retorno
0 (correcto) o 1 (error)
Comentarios
sp_changesubstatus se utiliza en la replicación de instantáneas y transaccional.
sp_changesubstatus cambia el estado del suscriptor en la tabla syssubscriptions por el estado cambiado. Si es preciso, actualiza el estado de los artículos de la tabla sysarticles para que indiquen un estado activo o inactivo. Si es necesario, establece la marca de replicación en activa o inactiva en la tabla sysobjects de la tabla replicada.
Permisos
Solo pueden ejecutar sp_changesubstatus los miembros del rol fijo de servidor sysadmin, los del rol fijo de base de datos db_owner o el creador de la suscripción.
Vea también
Referencia
sp_addsubscription (Transact-SQL)
sp_dropsubscription (Transact-SQL)
sp_helpdistributor (Transact-SQL)