Note: Forums will be making significant UX changes to address key usability improvements surrounding search, discoverability and navigation. To learn more about these changes please visit the announcement which can be found HERE.

Respondido Erro ao criar JOB

  • quarta-feira, 16 de maio de 2012 14:55
     
     

    Boa tarde,

    Estou criando o seguinte JOB. pra ele disparar um email com o resultado do select no corpo do email

    select @BODY_MSG =
    NFNum,NFBaseCalcIss,NFBaseCalcIrrf,NFDataEmis from nota_fiscal where NFBaseCalcIss <> NFBaseCalcIrrf and CtrlDFSerie = 'RPS'  

    BEGIN

    DECLARE @BODY_MSG VARCHAR(8000)

    EXEC msdb.dbo.sp_send_dbmail @recipients = 'renata@teste.com.br',
         @subject = 'Nota Fiscal',
        @BODY = @BODY_MSG
        @body_format = 'HTML'
            end

    porem quando eu finalizo a criação do JOB me apresenta o seguinte erro:

    Não é possivel converer um objeto do tipo 'Microsoft.SqlServer.Management.Smo.SimpleObjectKey' no
    tipo 'Microsoft.SqlServer.Management.Smo.SimpleObjectKey'. (Microsoft.SqlServer.Smo)

Todas as Respostas

  • quarta-feira, 16 de maio de 2012 16:53
     
     

    Renata,

    Você poderia descrever como esta realizando a criação deste Job?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

  • quarta-feira, 16 de maio de 2012 17:42
     
     

    na vdd este problema eu acabei resolvendo era permissão no banco, porem agora estou com outro erro abro novo post?

    MEU SELECT

    DECLARE @BODY_MSG VARCHAR(8000)
    select @BODY_MSG =
    NFNum,NFBaseCalcIss,NFBaseCalcIrrf,NFDataEmis from nota_fiscal where NFBaseCalcIss <> NFBaseCalcIrrf and CtrlDFSerie = 'RPS' and EmpCod = '1'
    and NFDataEmis = getdate ()

            EXEC msdb.dbo.sp_send_dbmail @recipients = 'renata.cardoso@planus.com.br',
           @subject = 'Nota Fiscal',
        @BODY = @BODY_MSG

    QUANDO EU EXECUTO O JOB DA UM ERRO NO HISTORICO.

    Message
    Executed as user: NT AUTHORITY\SYSTEM. A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations. [SQLSTATE 42000] (Error 141).  The step failed.

    NAO SEI SE É PROBLEMA NA SINTAXE DA QUERY.

  • quarta-feira, 16 de maio de 2012 19:12
     
     Respondido Contém Código

    Renata,

    O erro que você está tendo agora é sim problema de sintaxe.

    Você não pode usar o mesmo comando SELECT para atribuir valores a variáveis e ao mesmo tempo ler valores.
    Segue trecho do seu código com problema:

    select @BODY_MSG =
    NFNum,NFBaseCalcIss,NFBaseCalcIrrf,NFDataEmis from nota_fiscal where NFBaseCalcIss <> NFBaseCalcIrrf and CtrlDFSerie = 'RPS' and EmpCod = '1' 
    and NFDataEmis = getdate ()

    Note que você atribui @BODY_MSG = NFNum, e depois realiza a leitura dos demais campos. O comando SELECT não permite este tipo de operação. Ou você atribui várias variáveis, ou lê vários campos, mas não pode fazer os dois tipos de operação no mesmo SELECT.

    Talvez a sua ideia tenha sido concatenar todos os campos deste select na variável @BODY_MSG. Neste caso, você deve converter tudo para VARCHAR (seja com CONVERT ou com CAST) e concatenar as expressões utilizando o operador +.

    Exemplo:

    select @BODY_MSG =
    CAST(NFNum AS VARCHAR) + ', ' + CAST(NFBaseCalcIss AS VARCHAR) + ', ' + CAST(NFBaseCalcIrrf AS VARCHAR) + ', ' + CAST(NFDataEmis AS VARCHAR)
    from nota_fiscal where NFBaseCalcIss <> NFBaseCalcIrrf and CtrlDFSerie = 'RPS' and EmpCod = '1' 
    and NFDataEmis = getdate ()

    []'s


    MCP | MCTS SQL Server 2008 Database Developer