sp_changearticle (Transact-SQL)
Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure
Altera as propriedades de um artigo em uma publicação transacional ou de instantâneo. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_changearticle [ [@publication= ] 'publication' ]
[ , [ @article= ] 'article' ]
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] 'publisher' ]
Argumentos
[ @publication = ] 'publication'
É o nome da publicação que contém o artigo. publication é sysname, com um padrão de NULL.
[ @article = ] 'article'
É o nome do artigo cuja propriedade deve ser alterada. article é sysname, com um padrão de NULL.
[ @property = ] 'property'
É uma propriedade de artigo a ser alterada. A propriedade é Nvarchar(100).
[ @value = ] 'value'
É o novo valor da propriedade article. valor é nvarchar(255).
Essa tabela descreve as propriedades de artigos e os valores dessas propriedades.
Propriedade | Valores | Descrição |
---|---|---|
creation_script | Caminho e nome de um script de esquema de artigo usados para criar tabelas de destino. O padrão é NULL. | |
del_cmd | Instrução DELETE a ser executada; caso contrário, será construída do log. | |
descrição | Nova entrada descritiva para o artigo. | |
dest_object | Fornecido para compatibilidade com versões anteriores. Use dest_table. | |
dest_table | Nova tabela de destino. | |
destination_owner | Nome do proprietário do objeto de destino. | |
filtro | Novo procedimento armazenado a ser usado para filtrar a tabela (filtragem horizontal). O padrão é NULL. Não pode ser alterado para publicações em replicação ponto a ponto. | |
fire_triggers_on_snapshot | true | Gatilhos de usuário replicados são executados quando o instantâneo inicial é aplicado. Nota: Para que os gatilhos sejam replicados, o valor bitmask de schema_option deve incluir o valor 0x100. |
false | Gatilhos de usuário replicados não são executados quando o instantâneo inicial é aplicado. | |
identity_range | Controla o tamanho de intervalos de identidade atribuídos atribuído ao Assinante. Sem suporte para replicação ponto a ponto. | |
ins_cmd | Instrução INSERT a ser executada; caso contrário, será construída do log. | |
pre_creation_cmd | Comando de pré-criação que pode descartar, excluir ou truncar a tabela de destino antes que a sincronização seja aplicada. | |
none | Não usa um comando. | |
remover | Descarta a tabela de destino. | |
excluir | Exclui a tabela de destino. | |
truncar | Trunca a tabela de destino. | |
pub_identity_range | Controla o tamanho de intervalos de identidade atribuídos atribuído ao Assinante. Sem suporte para replicação ponto a ponto. | |
schema_option | Especifica o bitmap da opção de geração de esquema para o artigo determinado. schema_option é binário(8). Para obter mais informações, consulte a seção Comentários, mais adiante neste tópico. | |
0x00 | Desabilita execução de script pelo Agente de Instantâneo. | |
0x01 | Gera a criação do objeto (CREATE TABLE, CREATE PROCEDURE, e assim por diante). | |
0x02 | Gera os procedimentos armazenados que propagam alterações para o artigo, se definido. | |
0x04 | Os scripts das colunas de identidade são executados com a propriedade IDENTITY. | |
0x08 | Replicar colunas de carimbo de data/hora . Se não estiverem definidas, as colunas de carimbo de data/hora serão replicadas como binárias. | |
0x10 | Gera um índice clusterizado correspondente. | |
0x20 | Converte UDTs (tipos de dados definidos pelo usuário) em tipos de dados básicos no Assinante. Essa opção não poderá ser usada quando houver uma restrição CHECK ou DEFAULT em uma coluna UDT, se uma coluna UDT for parte da chave primária ou se uma coluna computada fizer referência a uma coluna UDT. Sem suporte para Publicadores Oracle. | |
0x40 | Gera índices não clusterizados correspondentes. | |
0x80 | Inclui integridade referencial declarada nas chaves primárias. | |
0x100 | Replica gatilhos de usuário em um artigo de tabela, se definido. | |
0x200 | Replica restrições FOREIGN KEY. Se a tabela referenciada não fizer parte de uma publicação, todas as restrições FOREIGN KEY em uma tabela publicada não serão replicadas. | |
0x400 | Replica restrições CHECK. | |
0x800 | Replica padrões. | |
0x1000 | Replica ordenação em nível de coluna. | |
0x2000 | Replica propriedades estendidas associadas com o objeto de origem do artigo publicado. | |
0x4000 | Replica chaves exclusivas definidas em um artigo de tabela. | |
0x8000 | Reproduz chave primária e chaves exclusivas em um artigo de tabela como restrições usando instruções ALTER TABLE. Nota: Esta opção foi preterida. Use 0x80 e 0x4000 em vez disso. |
|
0x10000 | Replica instruções CHECK como NOT FOR REPLICATION para que as restrições não sejam forçadas durante a sincronização. | |
0x20000 | Replica instruções FOREIGN KEY como NOT FOR REPLICATION para que as restrições não sejam forçadas durante a sincronização. | |
0x40000 | Replica grupos de arquivos associados a uma tabela ou índice particionado. | |
0x80000 | Replica o esquema de partição para uma tabela particionada. | |
0x100000 | Replica o esquema de partição para um índice particionado. | |
0x200000 | Replica estatísticas de tabela. | |
0x400000 | Associações padrão | |
0x800000 | Associações de regra | |
0x1000000 | Índice de texto completo | |
0x2000000 | As coleções de esquema XML vinculadas a colunas xml não são replicadas. | |
0x4000000 | Replica índices em colunas xml . | |
0x8000000 | Cria qualquer esquema ainda não presente no assinante. | |
0x10000000 | Converte colunas xml em ntext no Assinante. | |
0x20000000 | Converte tipos de dados de objeto grande (nvarchar(max), varchar(max) e varbinary(max)) que foram introduzidos no SQL Server 2005 (9.x) em tipos de dados com suporte no SQL Server 2000 (8.x). | |
0x40000000 | Replicar permissões. | |
0x80000000 | Tente descartar dependências para quaisquer objetos que não fazem parte da publicação. | |
0x100000000 | Use essa opção para replicar o atributo FILESTREAM se ele for especificado em colunas varbinary(max). Não especifique essa opção se você estiver replicando tabelas para assinantes do SQL Server 2005 (9.x). Não há suporte para a replicação de tabelas com colunas FILESTREAM para assinantes do SQL Server 2000 (8.x), independentemente de como essa opção de esquema está definida. Consulte a opção relacionada 0x800000000. |
|
0x200000000 | Converte tipos de dados de data e hora (data, hora, datetimeoffset e datetime2) que foram introduzidos no SQL Server 2008 (10.0.x) em tipos de dados com suporte em versões anteriores do SQL Server. | |
0x400000000 | Replica a opção de compactação para dados e índices. Para saber mais, veja Data Compression. | |
0x800000000 | Defina essa opção para armazenar dados FILESTREAM em seu próprio grupo de arquivos no Assinante. Se essa opção não for definida, os dados FILESTREAM serão armazenados no grupo de arquivos padrão. A replicação não cria grupos de arquivos; portanto, se você definir essa opção, deverá criar o grupo de arquivos antes de aplicar o instantâneo no Assinante. Para obter mais informações sobre como criar objetos antes de aplicar o instantâneo, consulte Executar scripts antes e depois que o instantâneo é aplicado. Consulte a opção relacionada 0x100000000. |
|
0x1000000000 | Converte UDTs (Common Language Runtime) tipos definidos pelo usuário (CLR) maiores que 8000 bytes em varbinary(max) para que colunas do tipo UDT possam ser replicadas para Assinantes que estejam executando o SQL Server 2005 (9.x). | |
0x2000000000 | Converte o tipo de dados hierarchyid em varbinary(max) para que as colunas do tipo hierarchyid possam ser replicadas para Assinantes que estejam executando o SQL Server 2005 (9.x). Para obter mais informações sobre como usar colunas hierarchyid em tabelas replicadas, consulte hierarchyid (Transact-SQL). | |
0x4000000000 | Replica qualquer índice filtrado na tabela. Para obter mais informações sobre índices filtrados, consulte Criar índices filtrados. | |
0x8000000000 | Converte os tipos de dados de geografia e geometria em varbinary(max) para que colunas desses tipos possam ser replicadas para Assinantes que estejam executando o SQL Server 2005 (9.x). | |
0x10000000000 | Replica índices em colunas do tipo geografia e geometria. | |
0x20000000000 | Replica o atributo SPARSE para colunas. Para obter mais informações sobre esse atributo, consulte Usar colunas esparsas. | |
0x40000000000 | Habilite o script pelo agente de instantâneo para criar uma tabela otimizada para memória no assinante. | |
0x80000000000 | Converte índice clusterizado em índice não clusterizado para artigos otimizados para memória. | |
status | Especifica o novo status da propriedade. | |
Partições horizontais DTS | Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida. | |
incluir nomes de colunas | Nomes de coluna são incluídos na instrução INSERT replicada. | |
sem nomes de coluna | Nomes de coluna não são incluídos na instrução INSERT replicada. | |
Sem partições horizontais DTS | A partição horizontal para o artigo não é definida por uma assinatura transformável. | |
none | Limpa todas as opções de status na tabela sysarticles e marca o artigo como inativo. | |
parameters | As alterações são propagadas ao Assinante usando comandos com parâmetros. Essa é a configuração padrão para um novo artigo. | |
literais de cadeia de caracteres | As alterações são propagadas ao Assinante usando valores de literal de cadeia de caracteres. | |
sync_object | Nome da tabela ou exibição usado para produzir um arquivo de saída de sincronização. O padrão é NULL. Sem suporte para Publicadores Oracle. | |
espaço de tabela | Identifica o espaço de tabela usado pela tabela de log para um artigo publicado de um banco de dados de Oracle. Para obter mais informações, consulte Gerenciar espaços de tabela Oracle. | |
threshold | Valor percentual para controle quando o Distribution Agent atribuir um novo intervalo de identidade. Sem suporte para replicação ponto a ponto. | |
tipo | Sem suporte para Publicadores Oracle. | |
baseado em logs; | Artigo com base em log. | |
manual baseado em logboth | Artigo com base em log com filtro manual e exibição manual. Essa opção requer que as propriedades sync_object e filter também sejam definidas. Sem suporte para Publicadores Oracle. | |
logbased manualfilter | Artigo com base em log com filtro manual. Essa opção requer que as propriedades sync_object e filter também sejam definidas. Sem suporte para Publicadores Oracle. | |
logbased manualview | Artigo com base em log com exibição manual. Essa opção requer que a propriedade sync_object também seja definida. Sem suporte para Publicadores Oracle. | |
Indexado viewlogbased | Artigo de exibição indexada com base em log. Sem suporte para Publicadores Oracle. Para este tipo de artigo, a tabela base não precisa ser publicada separadamente. | |
Manual baseado em viewlog indexado, | Artigo de exibição indexada com filtro manual e exibição manual. Essa opção requer que as propriedades sync_object e filter também sejam definidas. Para este tipo de artigo, a tabela base não precisa ser publicada separadamente. Sem suporte para Publicadores Oracle. | |
Filtro manual baseado em viewlog indexado | Artigo de exibição indexada com filtro manual. Essa opção requer que as propriedades sync_object e filtro também sejam definidas. Para este tipo de artigo, a tabela base não precisa ser publicada separadamente. Sem suporte para Publicadores Oracle. | |
Visualização manual baseada em viewlog indexada | Artigo de exibição indexada com base em log com exibição manual. Essa opção requer que a propriedade sync_object também seja definida. Para este tipo de artigo, a tabela base não precisa ser publicada separadamente. Sem suporte para Publicadores Oracle. | |
upd_cmd | Instrução UPADTE a ser executada; caso contrário, será construída do log. | |
NULO | NULO | Retorna uma lista de propriedades de artigo que podem ser alteradas. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Reconhece que a ação executada por este procedimento armazenado pode invalidar um instantâneo existente. force_invalidate_snapshot é um pouco, com um padrão de 0.
0 especifica que as alterações no artigo não fazem com que o instantâneo seja inválido. Se o procedimento armazenado detectar que a alteração requer um novo instantâneo, ocorrerá um erro e nenhuma alteração será feita.
1 especifica que as alterações no artigo podem fazer com que o snapshot seja inválido e, se houver assinaturas existentes que exigiriam um novo snapshot, dá permissão para que o snapshot existente seja marcado como obsoleto e um novo snapshot gerado.
Consulte a seção Comentários das propriedades que, quando alteradas, requerem a geração de um novo instantâneo.
[ @force_reinit_subscription = ]force_reinit_subscription_
Reconhece que a ação executada por este procedimento armazenado pode exigir que as assinaturas existentes sejam reinicializadas. force_reinit_subscription é um pouco com um padrão de 0.
0 especifica que as alterações no artigo não fazem com que a assinatura seja reinicializada. Se o procedimento armazenado detectar que a alteração irá requerer assinaturas existentes para ser reiniciada, ocorrerá um erro e nenhuma alteração será feita.
1 especifica que as alterações no artigo fazem com que as assinaturas existentes sejam reinicializadas e dá permissão para que a reinicialização da assinatura ocorra.
Consulte a seção Comentários para as propriedades que, quando alteradas, requerem que todas as assinaturas existentes sejam reiniciadas.
[ @publisher = ] 'publisher'
Especifica um Publicador que não seja do SQL Server. publisher é sysname, com um padrão de NULL.
Observação
publisher não deve ser usado ao alterar propriedades de artigo em um SQL Server Publisher.
Valores do código de retorno
0 (sucesso) ou 1 (fracasso)
Comentários
sp_changearticle é usado na replicação de snapshot e na replicação transacional.
Quando um artigo pertence a uma publicação que oferece suporte à replicação transacional ponto a ponto, você só pode alterar as propriedades de descrição, ins_cmd, upd_cmd e del_cmd .
A alteração de qualquer uma das propriedades a seguir requer que um novo instantâneo seja gerado e você deve especificar um valor de 1 para o parâmetro force_invalidate_snapshot:
del_cmd
dest_table
destination_owner
ins_cmd
pre_creation_cmd
schema_options
upd_cmd
A alteração de qualquer uma das propriedades a seguir requer que as assinaturas existentes sejam reinicializadas e você deve especificar um valor de 1 para o parâmetro force_reinit_subscription.
del_cmd
dest_table
destination_owner
filtro
ins_cmd
status
upd_cmd
Dentro de uma publicação existente, você pode usar sp_changearticle para alterar um artigo sem ter que descartar e recriar a publicação inteira.
Observação
Ao alterar o valor de schema_option, o sistema não executa uma atualização bit a bit. Isso significa que, quando você define schema_option usando sp_changearticle, as configurações de bits existentes podem ser desativadas. Para manter as configurações existentes, você deve executar | (Bit a bit OU) entre o valor que você está definindo e o valor atual de schema_option, que pode ser determinado executando sp_helparticle.
Opções de esquema válidas
A tabela a seguir descreve os valores permitidos de schema_option com base no tipo de replicação (mostrado na parte superior) e no tipo de artigo (mostrado abaixo na primeira coluna).
Tipo de artigo | Tipo de replicação - Transacional | Tipo de replicação - Snapshot |
---|---|---|
baseado em logs; | Todas as opções | Todas as opções, menos 0x02 |
logbased manualfilter | Todas as opções | Todas as opções, menos 0x02 |
logbased manualview | Todas as opções | Todas as opções, menos 0x02 |
exibição indexada baseada em log | Todas as opções | Todas as opções, menos 0x02 |
Filtro manual baseado em log de exibição indexada | Todas as opções | Todas as opções, menos 0x02 |
exibição indexada baseada em log manualview | Todas as opções | Todas as opções, menos 0x02 |
Visualização indexada logbase manualboth | Todas as opções | Todas as opções, menos 0x02 |
proc executivo | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 |
executivo proc serializável | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 |
Somente esquema proc | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 |
Exibir somente esquema | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000 | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000 |
somente esquema func | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000 e 0x80000000 |
Somente esquema de exibição indexado | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000 | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 e 0x80000000 |
Observação
Para publicações de atualização em fila, o valor schema_option de 0x80 deve ser habilitado. Os valores de schema_option com suporte para publicações que não são do SQL Server são: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 e0x4000.
Exemplo
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2022]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Permissões
Somente membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem executar sp_changearticle.
Confira também
Exibir e modificar as propriedades do artigo
Alterar propriedades da publicação e do artigo
sp_addarticle (Transact-SQL)
sp_articlecolumn (Transact-SQL)
sp_droparticle (Transact-SQL)
sp_helparticle (Transact-SQL)
sp_helparticlecolumns (Transact-SQL)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de