Inquiridor
Aplicação que usa bind

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
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 ]
-
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]