none
Aplicação que usa bind RRS feed

  • Pergunta

  • Pessoal, boa tarde.

    Estou acompanhando um log que criei onde pego o comando que meu erp envia para o banco

    (@P1 int,@P2 int,@P3 int,@P4 int,@P5 varchar(9),@P6 int,@P7 int,@P8 int,@P9 varchar(9))UPDATE baan_lbr.dbo.tabela SET t_stat=@P1 WHERE tabela.t_slcp=@P2 AND tabela.t_ortp=@P3 AND tabela.t_koor=@P4 AND tabela.t_slso=@P5 AND tabela.t_oset=@P6 AND tabela.t_pono=@P7 AND tabela.t_sqnb=@P8 AND tabela.t_shpm=@P9

    notem que os valores sao utilizados como @, eu consegui ir até este ponto, mas gostaria de saber se tem alguma forma de eu visualizar de fato os dados que foram inseridos.

    Obrigado.


    Forum SQL Server

    segunda-feira, 28 de setembro de 2020 18:54

Todas as Respostas

  • Olá Diego,

    Você pode usar o Sql Profile . Essa ferramenta vc gera um tracer e pode usar o perfil de 'Tsql' . Lá é possível ver esses valores. 

    Execute o processo que executa a querie e você verá o valor. Salve o arquivo para posterior visualização.


    Se esta resposta lhe ajudou, marque-a como útil para que outra pessoa com dúvida ou problema semelhante possa encontrar resposta ou ajuda mais facilmente. * Jefferson Clyton Pereira da Silva - [ MCSA | MCP | MCTS | MTA | Analista de Banco de Dados - Sql Server e Oracle ]

    terça-feira, 29 de setembro de 2020 13:30
  • Diego,

    Talvez uma alternativa mais simples para você seja utilizar a cláusula Output nas suas instruções de Insert, Update e Delete, direcionando o resultado da movimentação realizada para uma outra tabela:

    Veja se este exemplo te ajuda:

    --Criando o Banco de Dados Exemplos--
    Create Database Exemplos
    Go
    
    --Acessando o Banco de Dados Exemplos--
    Use Exemplos
    Go
    
    --Criando a Table Tabela1--
    Create Table Tabela1
     (Codigo SmallInt Identity Primary Key Clustered,
      Valor Int,
      DataCriacao Date,
      DataManipulacao Date) On [Primary]
      
    --Inserindo Dados na Tabela1 e Retornando os valores para claúsula Output--
    Insert Into Tabela1(Valor, DataCriacao, DataManipulacao) 
    Output inserted.Codigo, inserted.Valor, inserted.DataCriacao, inserted.DataManipulacao
     Values(10, GETDATE(), GETDATE()+1),
           (20, GETDATE(), GETDATE()+2),
           (30, GETDATE(), GETDATE()+3),
           (40, GETDATE(), GETDATE()+4)
     
    --Atualizando dados na Tabela1 e Retornando os valores para claúsula Output--
    Update Tabela1
    Set DataManipulacao=GETDATE()+ 1
    Output Inserted.DataManipulacao As 'Data de Manipulação Atualizada',
           Deleted.DataManipulacao As 'Data de Manipulação Antiga'
    Where Codigo=1
    Go
    
    --Excluíndo dados na Tabela1 e Retornando os valores para claúsula Output--
    Delete From Tabela1
    Output deleted.*
    Where Codigo In (2,4)
    Go
    
    --Criando a Tabela Temporária #TempOutput--
    Create Table #TempOutput
     (Codigo SmallInt Primary Key Clustered,
      Valor Int,
      DataCriacao Date,
      DataManipulacao Date) On [Primary]
    Go
    
    --Inserindo novos dados na Tabela1 e Armazenando o Retorno na Table Temporária--
    Insert Into Tabela1(Valor, DataCriacao, DataManipulacao) 
    Output Inserted.Codigo, Inserted.Valor, Inserted.DataCriacao, Inserted.DataManipulacao
    Into #TempOutput(Codigo,Valor, DataCriacao, DataManipulacao)
     Values(50, GETDATE(), GETDATE()+1),
           (60, GETDATE(), GETDATE()+2),
           (70, GETDATE(), GETDATE()+3),
           (80, GETDATE(), GETDATE()+4)
    Go
    
    --Consultando os dados de Retorno armazenadas na Table Temporária--
    Select * from #TempOutput
    Go
    
    --Criando a Visão para retorno dos dados armazenados na Table Temporária--
    Create View V_ConsultarDados
    As
     Select * From Tabela1
    Go
    
    --Realizando o Update sobre a Visão com Output Into para Table Temporária--
    Update V_ConsultarDados
    Set Valor=100
     Output Inserted.Codigo+10, Inserted.Valor, Inserted.DataCriacao, Inserted.DataManipulacao
     Into #TempOutPut(Codigo, Valor, DataCriacao, DataManipulacao)
    Where Codigo In (6,8) 
    Go
    
    --Consultando os dados--
    Select * from Tabela1
    Select * from V_ConsultarDados
    Select * from #TempOutput
    Go
    
    --Declarando variável do Tipo Table
    Declare @VariavelOutput Table
     (Codigo SmallInt,
      Valor Int,
      DataCriacao Date,
      DataManipulacao Date)
    
    --Inserindo novos dados na Tabela1 e Armazenando o Retorno na variável Table--
    Insert Into Tabela1(Valor, DataCriacao, DataManipulacao) 
    Output Inserted.Codigo, Inserted.Valor, Inserted.DataCriacao, Inserted.DataManipulacao
    Into @VariavelOutput(Codigo,Valor, DataCriacao, DataManipulacao)
     Values(110, GETDATE()+5, GETDATE()+10),
           (120, GETDATE()+6, GETDATE()+20),
           (130, GETDATE()+8, GETDATE()+30),
           (140, GETDATE()+9, GETDATE()+40)
    
    --Consultando os dados--
    Select * from @VariavelOutput
    Go

    Uma outra alternativa seria obter as informaões sobre as sessões e querys em execução, incluindo a coluna de Statement "Comando" executado.

    Veja o exemplo:

    SELECT 
      DES.SESSION_ID,
      DES.CPU_TIME,
      DES.READS,
      DES.WRITES,
      DES.LOGICAL_READS,
      DES.ROW_COUNT,
      DER.SESSION_ID,
      DES.STATUS,
      DES.HOST_NAME,
      DES.PROGRAM_NAME,
      DES.LOGIN_NAME,
      DES.ORIGINAL_LOGIN_NAME, 
      DEC.CLIENT_NET_ADDRESS,
      DEC.AUTH_SCHEME,
      DEC.NET_TRANSPORT,
      SUBSTRING(T.[TEXT], DER.[STATEMENT_START_OFFSET] / 2, 
    	COALESCE(NULLIF(DER.[STATEMENT_END_OFFSET], - 1) / 2, 2147483647)) AS COMANDO
    FROM
     SYS.DM_EXEC_SESSIONS AS DES 
      INNER JOIN SYS.DM_EXEC_REQUESTS DER
       ON DER.SESSION_ID = DES.SESSION_ID
      INNER JOIN SYS.DM_EXEC_CONNECTIONS DEC  
       ON DEC.SESSION_ID = DES.SESSION_ID
      INNER JOIN SYS.DM_EXEC_REQUESTS DER2
       ON DER2.SESSION_ID = DES.SESSION_ID
       CROSS APPLY SYS.DM_EXEC_SQL_TEXT(DER.[SQL_HANDLE]) AS T
    GO


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 30 de setembro de 2020 17:58