none
while RRS feed

  • Pergunta

  • Boa tarde
    Pessoal
    Fiz uma consulta no sql, mais o IF NOT EXISTE não está funcionando, pois pelo menos um existe na tabela.

    segue a consulta que fiz

    DELETE
    FROM
        MP_RH_CARGO_TREINAMENTO
    WHERE
        Cargo_codigo IN  (SELECT value FROM fn_Split (@p_Cargo_codigo, ',')) AND
        idTreinamento NOT IN (SELECT value FROM fn_Split (@p_idTreinamento, ','))
    BEGIN
        IF NOT EXISTS(
                        SELECT
                            idTreinamento
                        FROM
                            MP_RH_CARGO_TREINAMENTO
                        WHERE
                        Cargo_codigo IN  (SELECT value FROM fn_Split (@p_Cargo_codigo, ',')) AND
                        idTreinamento = (SELECT value FROM fn_Split (@p_idTreinamento, ','))
                     )
        BEGIN
            INSERT INTO
                    MP_RH_CARGO_TREINAMENTO (
                                                idCargo                ,
                                                Cargo_codigo        ,
                                                idTreinamento        ,
                                                Codigo_Treinamento    ,
                                                data_criacao        ,
                                                login_usuario
                                                )
                SELECT
                        @p_idCargo                ,
                        @p_Cargo_codigo            ,
                        T1.value                ,
                        T2.Codigo_Treinamento    ,
                        CURRENT_TIMESTAMP        ,
                        @p_Login    
                        FROM
                                fn_Split (@p_idTreinamento, ',') as T1
                    inner join  MP_RH_TIPO_TREINAMENTO as T2 on T2.Id = T1.value;                                                           
            SELECT  SCOPE_IDENTITY() AS ID            
            END            
    END

    quarta-feira, 10 de janeiro de 2018 20:31

Todas as Respostas

  • Se eu compreendi seu "If Not Exists" sempre retorna TRUE? Certo?

    Seu delete garante isso, uma vez que voce deleta usando o mesmo critério que o   IF NOT EXISTS

    att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    quarta-feira, 10 de janeiro de 2018 21:11
  • Bom dia ,  o correto não seria trocar isso

     AND idTreinamento = (SELECT value FROM fn_Split(@p_idTreinamento, ',')

    por isso 

    AND idTreinamento IN (SELECT value FROM fn_Split(@p_idTreinamento, ',')

    seu objetivo e fazer um delete de dados e um insert desses nesmos dados ??

    o que tem na variável @p_Cargo_codigo e @p_idTreinamento ??

    Wesley Neves - Brasilia-DF     

    https://wesleyneves.wordpress.com/

    SELECT Tab.[that's me:]

    FROM

    (

        VALUES

            ('Wesley Neves'),

            ('Analista.NET'),

            ('Pós Graduando em Banco de Dados com ênfase em BI'),

            ('MTA -SQL Server'),

            ('MTA -Web Developed')

    ) AS Tab ("that's me:");


    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    quinta-feira, 11 de janeiro de 2018 09:52
  • If Not Exists" sempre retorna TRUE mesmo

    como posso proceder

    fiz alteração conforme voce passou e continua a mesma coisa

    quinta-feira, 11 de janeiro de 2018 10:46
  • Por favor , nos diga o que vc precisa realizar na sua query, qual sua real necessidade ??

    Me parece que seu IF NOT EXISTS , sempre vai retornar true , por que v anteriormente está fazendo os deletes dos Valores , logo eles não existira.

    Wesley Neves - Brasilia-DF     

    https://wesleyneves.wordpress.com/

    SELECT Tab.[that's me:]

    FROM

    (

        VALUES

            ('Wesley Neves'),

            ('Analista.NET'),

            ('Pós Graduando em Banco de Dados com ênfase em BI'),

            ('MTA -SQL Server'),

            ('MTA -Web Developed')

    ) AS Tab ("that's me:");


    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    quinta-feira, 11 de janeiro de 2018 11:59