Consultas Dinâmicas

Então o que fazer par quem uma mesma consulta contemple várias tabelas diferentes (ODLN, OINV e etc)?

Existem várias soluções para esta pergunta, mas mais pratica é o uso de consulta Dinâmica, ou seja, consulta que se modifica de acordo com a necessidade. Vamos ver a consulta atual e a mesma como dinâmica.

Consulta Atual

../../../_images/getcommentsdoc_06.png

Mesma Consulta Dinâmica

../../../_images/getcommentsdoc_06-1.png

Explicando a consulta dinâmica

A consulta em sua sintaxe será convertida no conteúdo de uma variável “Texto” e será executada por um Comando Padrão do SQL conhecido como “EXEC()” que retornará o resultado da consulta.

A principal vantagem do uso de uma consulta dinâmica é a melhora o desempenho do banco de dados e principalmente seu tempo de resposta, mas o que dá versatilidade a ela é que permitir modificar sua consulta partir de valores de variáveis.

Exemplo o Usuário muda um valor de uma variável e a procedure modifica apenas uma parte especifica da consulta e retorna o valor

../../../_images/getcommentsdoc_06-2.png

Declare @query nvarchar (max) – Declara a variável para receber a consulta.

Set @query = ‘...’ – Atribui o texto da consulta.

Exec(@query) – Retorna o valor da consulta setada anteriormente na variável query.

Valide a consulta dinâmica de exemplo em seu ambiente.

../../../_images/getcommentsdoc_06-3.png

Atenção

Mude o nome do banco SBO_American_JCJ para o nome do banco que você está usando no SAPBusiness One.