Usuário com melhor resposta
Identificar os tipos de variáveis de uma string que representa uma query

Pergunta
-
Prezados,
Boa tarde!
Estou com a seguinte dúvida: Eu tenho, no meu código C#, uma string que contém um código T-SQL:
string queryToSelect = "SELECT CAMPO1, CAMPO2 FROM TABELA WHERE CAMPO2 = @FILTRO2 AND CAMPO3 = @FILTRO3";
Há algum meio de eu passá-la ao SQL Server e o mesmo analisá-la e me devolver as variáveis da query e quais os seus SqlDbTypes?
Conseguir quais são as variáveis da string é possível através do uso de RegularExpressions, ou mesmo através das classes de parser TSql, porém, ainda continuo com o problema de desconhecer os tipos das variáveis.
Grato desde já,
Guilherme
Respostas
-
Olá,
Você consegue retornar o tipo de dados das colunas do banco de determinada tabela. Até porque as variáveis deverão ser do mesmo tipo de dados das colunas correspondentes.
A Query a seguir retorna duas colunas (Nome da coluna e tipo):
SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.columns WHERE TABLE_NAME = 'NOME_DA_TABELA'
OBS: Capture o resultado dessa query na sua aplicação e terás o tipo de dados de cada coluna da tabela informada.
Espero ter ajudado!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Robson William SilvaModerator segunda-feira, 10 de outubro de 2016 13:58
Todas as Respostas
-
Olá,
Você consegue retornar o tipo de dados das colunas do banco de determinada tabela. Até porque as variáveis deverão ser do mesmo tipo de dados das colunas correspondentes.
A Query a seguir retorna duas colunas (Nome da coluna e tipo):
SELECT COLUMN_NAME, DATA_TYPE FROM information_schema.columns WHERE TABLE_NAME = 'NOME_DA_TABELA'
OBS: Capture o resultado dessa query na sua aplicação e terás o tipo de dados de cada coluna da tabela informada.
Espero ter ajudado!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Robson William SilvaModerator segunda-feira, 10 de outubro de 2016 13:58
-
Sim.. voce pode analisar o consultar a tabela information_schema.columns, mas existe uma forma mais simples:
Analise o dataset retornado. A coleçcao Dataset.Table.Columns possui uma descriçao completa de cada uma das colunas, contendo o tipo , tamanho, etc...
Naso precisa fazer nenhuma outra operaçao.
Olhe a descriçcao de um objeto DataColumn:
https://msdn.microsoft.com/en-us/library/system.data.datacolumn(v=vs.110).aspx
Tem alguma coisa ali que nao te atende?
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------