Estou tentando atualizar o tipo do tipo de coluna Titem da tabela e defini-lo como novo id, ao mesmo tempo em que verifique se o id do usuário possui esses 2 itens ( oldid que estamos atualizando, 2º idque é apenas para verificar se o user_id o possui). No entanto, essa é a parte que estou fazendo errado, não sei como usar 1 dos tipos de item, pois é apenas enquanto atualiza o outro, pois ambos compartilham o tipo como referência. Eu sei que estou usando como alguém diria junções antigas, além do que meu objetivo é fazer com que funcione não otimização, não sou desenvolvedor, nem qualquer tipo de codificador. Eu sou um novato com entendimento um pouco básico nada mais. Como tudo está esclarecido agora, eu apreciaria se alguém me desse um exemplo disso funcionando ou como fazê-lo funcionar. Funciona até a parte Exist que é praticamente ignorada. A fila é executada totalmente, no entanto, como eu disse por último, é ignorada. Não há msgs: E é isso que praticamente funciona/é executado:
UPDATE TItem
SET type= 'newid'
FROM Titem x, TCharacter y
WHERE x.char_id = y.id
and x.type = 'oldid'
table1 'tcharacter'
| id | create date | mode |
Table2 'titem'
| type | Attr | char_ID |
id=char_id Essa é a única coluna em que eles compartilham os mesmos dados Objetivo: SE USER_ID tiver o 3rditem id a fila deve ser executada -> atualizando o id antigo para o newid. Essa é uma maneira de explicar. O que eu tentei abaixo foi tentar atualizar o ID enquanto verificava se user_id tem o 2º itemid presente. O que eu tentei:
UPDATE TItem
SET type= 'newid'
FROM Titem x, TCharacter y
WHERE x.char_id = y.id
and x.type = 'oldid'
and EXISTS
(SELECT type = '2nd id' FROM Titem WHERE x.char_id = y.id);
A nova consulta IF que eu tentei está além da crítica de quão confusa ela ficou, o problema é que, independentemente de o item existir ou não, é irrelevante, desde que esteja presente no banco de dados uma vez, o que resulta na fila a ser executada para cada registro adicionando todas as especificações x e y resultou em nada obviamente estou fazendo errado.
IF EXISTS (SELECT 1 FROM Titem as x, TCharacter as y WHERE x.type = '2nd id' AND x.char_id = y.id)
BEGIN
UPDATE Titem
SET type = 'mewid'
FROM dbo.TItem AS x, TCharacter AS y
WHERE x.char_id = y.id
and x.type = 'oldid'
END
Não tenho certeza de entender seu problema; Tente este, por favor:
dbfiddle
talvez você possa adicionar alguns dados ao dbfiddle ...