Usuário com melhor resposta
Merger Replication

Pergunta
-
Boa tarde Pessoal,
Tenho um ambiente com um banco de dados, que utiliza merge replication para três Bases de dados Subscriptios.
Após a execução do TSQL "ALTER TABLE [dbo].[Mensagens] ALTER COLUMN SISTEMA VARCHAR(8) not NULL"
Ao executar o merge agent, recebo a mensagem de erro abaixo.
--------------------------------------
Error messages:
The schema script ' if exists (select * from syscolumns where name = N'SISTEMA' and id = object_id(N'[dbo].[Mensagens]')) if object_id(N'[dbo].[Mensagens]') is not null exec('ALTER TABLE [dbo].[Mensagens] ALTER COLUMN SISTEMA VARCHAR(8) not NULL
')' could not be propagated to the subscriber. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201001)
Get help: http://help/MSSQL_REPL-2147201001
Cannot insert the value NULL into column 'Sistema', table 'Blumenau.dbo.Mensagens'; column does not allow nulls. UPDATE fails. (Source: MSSQLServer, Error number: 515)
Get help: http://help/515--------------------------------------
Análizando esses dois Subscriptions que apresentam o problema de replicação, verifiquei na mesma tabela "MENSAGENS", duas outras colunas perderam suas propriedades de PK (Primary Key).
Se alguem pode me auxíliar, eu agradeço.
Marcos Vinícius Oliveira Schardong MCTS – SQL Server 2008 / Forefront / Virtualization- Editado Marcos V. O. Schardong terça-feira, 26 de julho de 2011 19:27
Respostas
-
Deleted
- Marcado como Resposta Marcos V. O. Schardong segunda-feira, 19 de dezembro de 2011 17:15
-
Olá Marcos, a resposta é SIM.
Ele vai ignorar a primeira e fazer a segunda alteração.
Alteração de tabela é um comando DDL, no final dele mesmo que tu esteja em uma transação ele vai dar commit ou rollback.
- Marcado como Resposta Marcos V. O. Schardong segunda-feira, 19 de dezembro de 2011 17:16
Todas as Respostas
-
Deleted
- Marcado como Resposta Marcos V. O. Schardong segunda-feira, 19 de dezembro de 2011 17:15
-
Bom dia Rafael,
Verifiquei se essa coluna "Sistema" já possuia campos NULL. Pois esse alter table já havia sido executado anteriormente.
Tenho uma dúvida, em relação a esse ALTER TABLE que está tentando ser executado. Após eu executar un novo ALTER TABLE na tabela "Mensagens" a primeira alteração de Schema (que está acontecendo erro) será ignorada?
Marcos Vinícius Oliveira Schardong MCTS – SQL Server 2008 / Forefront / Virtualization- Marcado como Resposta Marcos V. O. Schardong segunda-feira, 19 de dezembro de 2011 17:15
- Não Marcado como Resposta Marcos V. O. Schardong segunda-feira, 19 de dezembro de 2011 17:15
-
Olá Marcos, a resposta é SIM.
Ele vai ignorar a primeira e fazer a segunda alteração.
Alteração de tabela é um comando DDL, no final dele mesmo que tu esteja em uma transação ele vai dar commit ou rollback.
- Marcado como Resposta Marcos V. O. Schardong segunda-feira, 19 de dezembro de 2011 17:16