Ir para conteúdo

POWERED BY:

Arquivado

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

mmsalei

em Store Procedure

Recommended Posts

estou criando uma procedure, mas estou com uma duvida...

dentro da procedure, tenho um select...

e no insert preciso usar os valores do primeiro select mas nao estou sabendo como pegar os valores...

 

ai vai meu codigo...

 

CREATE PROCEDURE sp_InsereCarga_T010

(

@RetVal int OUTPUT,

@Carga varchar(5),

@Codigo varchar(6),

@prioridade int

 

)

AS

BEGIN

 

IF NOT EXISTS (SELECT B1_COD, AN003_QTDE FROM T003_ARMAZEM WHERE AS003_CARGA = @Carga)

SET @RetVal = 2 /* carga inexistente */

ELSE

BEGIN

INSERT INTO T010_TRANSITO

(AD010_DTSOLICITACAO, AS010_TIPOOPERACAO, B1_COD, AS010_CARGA,

AN010_QTDE, AN010_PRIORIDADE, AS010_OPERADOR)

VALUES (GETDATE(), 'RETIRA',"PEGAR CODIGO DO SELECT (B1_COD)" ,@Carga, 'PEGAR QUANTIDADE DO SELECT', @prioridade, 'Usuario')

 

/* verifica status do INSERT */

iF @@ERROR = 0

SET @RetVal = 0 /* OK */

ELSE

SET @RetVal = 1 /* Erro */

END

SELECT @RetVal

END

 

Se alguem puder me ajudar por favor... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá mmsalei,

 

uma forma é usando as variaveis dentro do select, exemplo:

insert into tabelaZ(campo1, campo2, campo3)select campoX, 'Teste', @variavel from TabelaX
podemos notar que o valor do campoX será de acordo com os valores da TabelaX, um select normal, e irá ser inserido no campo 'campo1' da tabelaZ, já os valores fixos 'Teste' e @Varivavel serão inseridos nos campos 'campo2' e 'campo3' da tabelaZ

 

o seu código ficaria +ou- assim:

INSERT INTO T010_TRANSITO(AD010_DTSOLICITACAO, AS010_TIPOOPERACAO, B1_COD, AS010_CARGA,AN010_QTDE, AN010_PRIORIDADE, AS010_OPERADOR) SELECT GETDATE(), 'RETIRA', B1_COD, @Carga, campoQTDdoSelect, , @prioridade, 'Usuario' from SuaTabela

Outra forma de resolver este problema seria declarar variaveis dentro da procedure depois do AS, atribui valores a essas variaveis dentro de um select e passa as variaveis depois na instrução insert.

Para pegar as variaveis dentro do select:

select @variavel = campoX from tabelaX

 

falows,

t+

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.