Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FábioWP

Comando UPDATE de Oracle para SQL Server

Recommended Posts

Pessoal, estou tendo dificuldes com um comando UPDATE, pois eu uso ele em um banco Oracle e funciona corretamente, mas agora estou precisando executar o mesmo comando em uma Base SQL Server. O problema é que está dando erro e eu não conheço muito de SQL Server.

 

O comando é este :

 

update r069cra a set usu_filial = (select SUBSTR(NUMCRA,2,2) from r069cra

b where a.numcra = b.numcra);

 

E o erro é este: incorrect syntax near 'a'

 

Por favor, se alguém puder me ajudar a converter este código SQL de forma que ele possa ser executado no SQL Server, ficarei muito grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o UPDATE é um pouco diferente, requer o FROM e o apelido da tabela vai no FROM, e o comando SUBSTR é SUBSTRING

 

creio que vai ficar +ou- assim, testai, faça backup, ou transação antes pra garantir...

UPDATE r069cra SET usu_filial = (SELECT SUBSTRING(NUMCRA,2,2) FROM r069cra b 
                                WHERE a.numcra = b.numcra) 
FROM r069cra a 

veja tb. o books online: http://msdn2.microsoft.com/en-us/library/a...42(SQL.80).aspx

 

 

 

t+

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

Deixa eu ver se entendi.

é um update para a msm tabela mas em campos diferentes?!

abs

podes cre véio, não tinha reparado, nesse caso é só fazer:

UPDATE r069cra SET usu_filial = SUBSTRING(NUMCRA,2,2) 

lembre-se: backup antes

 

fiz o seguinte teste e funcionou:

USE pubs
SELECT * FROM titles  --antes
UPDATE titles SET price = price - 1000
SELECT * FROM titles  --depois
UPDATE titles SET price = price + 1000
SELECT * FROM titles  --voltado

 

t++

http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabio,

Realmente, se for a msm tabela, é soh fazer como nosso amigo eriva disse:

 

UPDATE r069cra SET usu_filial = SUBSTRING(NUMCRA,2,2)

 

^^

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela ajuda! realmente foi muito válida, resolveu meu problema, mas agora apareceu outro, pois em oracle não tenho problemas com aqele comando usado em um campo inteiro passando para String. Mas com o SQL ele apresentou erro de tipo de dados invalido, pois neste trecho do comando: (SELECT SUBSTRING(NUMCRA,2,2) o NUNCRA é um campo do tipo inteiro.

 

Se você puder me ajudar novamente, ficarei muito feliz, pois estará dando um grande empurrão aqui.

 

Mas de qualquer forma, já me ajudou muito me mostrando como fazer o comando corretamente no SQL Server... Valeu Mesmo!!!

 

 

 

o UPDATE é um pouco diferente, requer o FROM e o apelido da tabela vai no FROM, e o comando SUBSTR é SUBSTRING

 

creio que vai ficar +ou- assim, testai, faça backup, ou transação antes pra garantir...

UPDATE r069cra SET usu_filial = (SELECT SUBSTRING(NUMCRA,2,2) FROM r069cra b 
                                WHERE a.numcra = b.numcra) 
FROM r069cra a 

veja tb. o books online: http://msdn2.microsoft.com/en-us/library/a...42(SQL.80).aspx

 

 

 

t+

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

Deixa eu ver se entendi.

é um update para a msm tabela mas em campos diferentes?!

abs

podes cre véio, não tinha reparado, nesse caso é só fazer:

UPDATE r069cra SET usu_filial = SUBSTRING(NUMCRA,2,2) 

lembre-se: backup antes

 

fiz o seguinte teste e funcionou:

USE pubs
SELECT * FROM titles  --antes
UPDATE titles SET price = price - 1000
SELECT * FROM titles  --depois
UPDATE titles SET price = price + 1000
SELECT * FROM titles  --voltado

 

t++

http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela ajuda! realmente foi muito válida, resolveu meu problema, mas agora apareceu outro, pois em oracle não tenho problemas com aqele comando usado em um campo inteiro passando para String. Mas com o SQL ele apresentou erro de tipo de dados invalido, pois neste trecho do comando: (SELECT SUBSTRING(NUMCRA,2,2) o NUNCRA é um campo do tipo inteiro.

 

Se você puder me ajudar novamente, ficarei muito feliz, pois estará dando um grande empurrão aqui.

 

Mas de qualquer forma, já me ajudou muito me mostrando como fazer o comando corretamente no SQL Server... Valeu Mesmo!!!

nesse caso tem que converter o campo para char, utilize o comando CAST ou CONVERT

 

 

t+

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.