Ir para conteúdo

POWERED BY:

Arquivado

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

mmsalei

Erro na SP

Recommended Posts

Oi pessoal...

 

estou tentando atualizar uma tabela com referencia em outra...

resolvi usar o left outer join...

fiz assim oh...

 

SELECT * FROM Teste LEFT OUTER JOIN Teste1 ON (Teste.cod = Teste1.cod)

'Estarei colocando uma condição, se ja existe o codigo nas duas tabelas

'então estarei apenas atualizando os dados da table Teste1 de acordo com o Teste

'vou fazer update independente de ter alterado algum dado

 

IF (Teste.cod = Teste1.cod) THEN

UPDATE Teste1 SET

Teste1.cod = Teste.cod,

Teste1.nome = Teste.nome

FROM Teste

'Caso nao seja igual os códigos, estarei inserindo na table Teste1 os dados q existem

'somente em teste, para que as duas fiquem com os mesmos dados

 

ELSE IF

INSERT INTO Teste1(cod, nome)

values (Teste.cod , Teste.nome)

END IF

 

 

quando vou executar a sp da um monte de erros...

e eu nao sei o que pode ser...

alguem pode me ajudar?

me dizer onde esta errado meu script por favor? http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

os erros sao....

 

Server: Msg 156, Level 15, State 1, Line 2

Incorrect syntax near the keyword 'THEN'.

 

Server: Msg 156, Level 15, State 1, Line 7

Incorrect syntax near the keyword 'ELSE'.

 

Server: Msg 128, Level 15, State 1, Line 9

The name 'cod' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai mmsalei, beleza

Server: Msg 156, Level 15, State 1, Line 2Incorrect syntax near the keyword 'THEN'.

no sql a condição IF não necessita do THENexemplo:
IF (CONDICAO)BEGIN	BLABLABLA...	BLABLABLA...END

Server: Msg 156, Level 15, State 1, Line 7Incorrect syntax near the keyword 'ELSE'.

no sql a condição ELSE IF não necessita do IF ou este IF deve conter outra condicaoexemplo: (neste exemplo no ultimo else naum tem nenhuma condição, entaum se naum atender a CONDICAO1 e naum atender a CONDICAO2 vai cair no último ELSE
IF (CONDICAO1)BEGIN	BLABLABLA...	BLABLABLA...ENDELSE IF (CONDICAO2)BEGIN	BLABLABLA...	BLABLABLA...ENDELSE BEGIN	BLABLABLA...	BLABLABLA...END

Server: Msg 128, Level 15, State 1, Line 9The name 'cod' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.

campos não podem ser verificados fora do comando select, pode-se definir os campos em variaveisexemplo
declare @cod int --VAI RECEBER O CAMPO Teste.cod declare @cod1 int --VAI RECEBER O CAMPO Teste1.cod SELECT @cod = Teste.cod , @cod1 = Teste1.cod FROM Teste LEFT OUTER JOIN Teste1 ON (Teste.cod = Teste1.cod)IF (@cod = @cod1)BEGIN	 BLABLABLABLA...END
porém se tiver vários registros vai ter que jogar isso num cursor ou loop, veja excelente artigo sobre cursores e loops http://www.mcdbabrasil.com.br/modules.php?...=article&sid=24falowst+

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi eriva_br...tudo bem??Obrigada pela ajuda...agora sim consegui executar a procedure sem erros...Deus que ajude... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

amém http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.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.