none
Como converter uma proceduro de SQL para MySql ? RRS feed

  • Pergunta

  • Pessoal estou tentando converter uma Procedure do SQL para MySql, mas não estou conseguindo, alguem poderia me ajudar??

    Obrigado

    DECLARE @VERIFICA_PEDIDO INT ;
    DECLARE @QUAL_PEDIDO INT ;
    DECLARE @PEDIDO INT ;
    DECLARE @VALOR DECIMAL(10,2);
    DECLARE @VALORTOTAL DECIMAL (10,2);
    DECLARE @EXISTE_ITEM INT;

    SELECT  @VALOR  =
    CASE
    WHEN Produto_Promocao = 'S' THEN  Produto_ValorPromocao ELSE  Produto_Valor
    END
    FROM dbo.TB_PRODUTOS
    WHERE Produto_id = @Produto;

     

    BEGIN TRANSACTION;
    BEGIN TRY -- Inicia bloco protegido de erro

    -- Caso Cliente não tenha nenhum Pedido Aberto faz a abertura do
    -- Pedido e depois inclui o item no Pedido.

    -- Verifica se existe Pedido em Aberto

    SELECT @VERIFICA_PEDIDO = COUNT(*) FROM dbo.TB_PEDIDOS
    WHERE Cliente_id = @Cliente AND Pedido_Aberto = 'S'

    IF @VERIFICA_PEDIDO > 0
    BEGIN

    SELECT @QUAL_PEDIDO = Pedido_id FROM dbo.TB_PEDIDOS
    WHERE Cliente_id = @Cliente AND Pedido_Aberto = 'S'


    SELECT @EXISTE_ITEM = COUNT(*) FROM TB_ITENSPEDIDO WHERE Produto_id = @Produto AND Pedido_id = @QUAL_PEDIDO;

    IF @EXISTE_ITEM > 0
    BEGIN
    UPDATE TB_ITENSPEDIDO SET Produto_Qtde = Produto_Qtde +1 WHERE Pedido_id = @QUAL_PEDIDO AND Produto_id = @Produto
    END

    IF @EXISTE_ITEM = 0
    BEGIN

    INSERT INTO TB_ITENSPEDIDO
    (
    Pedido_id,
    Produto_id,
    Produto_Valor,
    Produto_Qtde,
    Produto_ValorTotal
    )
    VALUES
    (
    @QUAL_PEDIDO,
    @Produto,
    @VALOR,
    1,
    @VALOR
    )

    END
    END

    IF @VERIFICA_PEDIDO = 0
    BEGIN

    INSERT INTO TB_PEDIDOS
    (
    Cliente_id,
    Pedido_Aberto
    )
    VALUES
    (
    @Cliente,
    'S'
    )

    SET @QUAL_PEDIDO = SCOPE_IDENTITY();


    SELECT @EXISTE_ITEM = COUNT(*) FROM TB_ITENSPEDIDO WHERE Produto_id = @Produto AND Pedido_id = @QUAL_PEDIDO;

    IF @EXISTE_ITEM > 0
    BEGIN
    UPDATE TB_ITENSPEDIDO SET Produto_Qtde = Produto_Qtde +1 WHERE Pedido_id = @QUAL_PEDIDO AND Produto_id = @Produto
    END

    IF @EXISTE_ITEM = 0
    BEGIN

    INSERT INTO dbo.TB_ITENSPEDIDO
    (
    Pedido_id,
    Produto_id,
    Produto_Valor,
    Produto_Qtde,
    Produto_ValorTotal
    )
    VALUES
    (
    @QUAL_PEDIDO,
    @Produto,
    @VALOR,
    1,
    @VALOR
    )

    END
    END

     

     


    -- SE TUDO ESTIVER CORRETO COMITA A TRANSAÇÃO
    COMMIT;
        SELECT 1 AS ERRO_MSG,@QUAL_PEDIDO AS PEDIDO ;
    END TRY
    BEGIN CATCH -- Inicia bloco de tratamento de erro
        ROLLBACK;
        SELECT 0 AS ERRO_MSG, 0 AS LANCAMENTO;   
    END CATCH

     


    END

    sábado, 28 de maio de 2011 17:21

Todas as Respostas

  • Amigo sei que no SqlServer tem um aplicativo de Import e Export Data tenta usar ai axo q vai servir

     

    Abraço


    Analista Desenvolvedor
    segunda-feira, 30 de maio de 2011 12:20