Pergunta

Eu tenho três linhas no banco de dados, fora esses dois são idênticos.Fora esses dois mesmas linhas que eu tenho para fazer alterações em um único usar o sybase.Ex.

Row1: ABC 456 ancient block
Row2: ABC 456 ancient block
Row3: DEF 678 class   block

Eu tenho para fazer alterações em um dos dois primeiros bloco alterando ABC para a XYZ.Se houver apenas dois blocos idênticos, em seguida, eu estou fazendo o método abaixo.

begin transaction AA
set rowcount 1
update table 
set col1 = XYZ
where col1 = ABC
commit transaction AA
set rowcount 0

É fácil se houver duas linhas idênticas, mas se duas iguais e uma diferente, em seguida, sybase pega a linha exclusiva e atualiza-lo.Alguém pode dizer como resolver este três linhas problema ?Eu estou usando aseisql para o Sybase.

Foi útil?

Solução

Você já tentou:

update top 1 table 
set col1 = XYZ
where col1 = ABC

Outras dicas

Esta é a solução que eu imaginei.

begin transaction a
set rowcount 2
update table 
set col1 = XYZ
where col4 = block

commit transaction a
set rowcount 0

Ele irá atualizar uma das linhas duplicadas e a única linha.Então vou atualizar a linha exclusiva para seu valor original, separadamente, usando a instrução update.Eu sei que seu som bruto, mas ninguém respondeu de forma satisfatória.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top