none
Fazer insert com um resultado proveniente de select RRS feed

  • Pergunta

  • BEGIN
    	BEGIN TRY
    		BEGIN TRAN
    		
    		DECLARE @TOTAL_LINHAS INT
    		SET @TOTAL_LINHAS = 0
    		
    
    		
    		INSERT INTO MOV_EVENTO_PROCESSO_VENDA
    		  (
    		  	num_seq_evento_venda,
    		    num_seq_processo_venda,
    		    dat_evento,
    		    hor_evento,
    		    dat_evento_seguinte,
    		    cod_tp_evento_venda,
    		    dat_retirada,
    		    txt_detalhe_evento,
    		    cod_usuario_inclusao,
    		    dat_inclusao,
    		    hor_inclusao,
    		    cod_usuario_atualizacao,
    		    dat_atualizacao,
    		    hor_atualizacao,
    		    escritura_publica,
    		    ind_escritura_externa,
    		    ranking,
    		    indE_Pe,
    		    dat_evento_inicial,
    		    data_geracao_atividade
    		  )
    		VALUES
    		  (
    		  	@Num_seq_evento_venda <- esse cara recebe o valor,
    		    647046,
    		    '2014-10-03 12:37:49',
    		    '12:37:49',
    		    NULL,
    		    11,
    		    NULL,
    		    NULL,
    		    61065,
    		    '2014-10-03 12:37:49',
    		    '12:37:49',
    		    NULL,
    		    NULL,
    		    NULL,
    		    NULL,
    		    NULL,
    		    NULL,
    		    NULL,
    		    NULL,
    		    NULL
    		  )
    		
    		SET @TOTAL_LINHAS = @TOTAL_LINHAS + @@ROWCOUNT 
    		
    		
    		PRINT STR(@TOTAL_LINHAS)
    		IF @TOTAL_LINHAS = 1
    		BEGIN
    		    COMMIT
    		    PRINT 'COMANDOS COMMITADOS'
    		END
    		ELSE
    		BEGIN
    		    ROLLBACK
    		    PRINT 'ROLLBACK EFETUADO'
    		END
    	END TRY
    	
    	BEGIN CATCH
    		PRINT 'ERRO: ' + ERROR_MESSAGE()
    		ROLLBACK
    		GOTO FIM
    	END CATCH
    	FIM:
    	PRINT 'QUERY FINALIZADA'
    END
    
    
    
    

    A consulta que tenho que adicionar naquele valor de values é:     SELECT max(num_seq_evento_venda)+1 FROM  MOV_EVENTO_PROCESSO_VENDA 

    Alguém sabe como isto pode ser feito?

    quarta-feira, 8 de outubro de 2014 11:57

Respostas

  • Ares,

    Você vai precisar declarar todos com campos indicados na sua instrução INSERT dentro da instrução SELECT.

    Veja um exemplo abaixo para você adaptar à sua necessidade:

    INSERT INTO MOV_EVENTO_PROCESSO_VENDA
    (
    num_seq_evento_venda,
    num_seq_processo_venda,
    dat_evento,
    hor_evento,
    dat_evento_seguinte,
    cod_tp_evento_venda,
    dat_retirada,
    txt_detalhe_evento,
    cod_usuario_inclusao,
    dat_inclusao,
    hor_inclusao,
    cod_usuario_atualizacao,
    dat_atualizacao,
    hor_atualizacao,
    escritura_publica,
    ind_escritura_externa,
    ranking,
    indE_Pe,
    dat_evento_inicial,
    data_geracao_atividade
    )
    SELECT 
      (SELECT (max(num_seq_evento_venda)+1) FROM  MOV_EVENTO_PROCESSO_VENDA) AS Num_seq_evento_venda,
        647046,
        '2014-10-03 12:37:49',
        '12:37:49',
        NULL,
        11,
        NULL,
        NULL,
        61065,
        '2014-10-03 12:37:49',
        '12:37:49',
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL,
        NULL

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 8 de outubro de 2014 13:12
    • Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 8 de outubro de 2014 18:36
    quarta-feira, 8 de outubro de 2014 13:11
    Moderador