jafm Posted February 27, 2014 at 10:58 AM Report #546841 Posted February 27, 2014 at 10:58 AM boas, Será que é possível colocar uma query simples do gênero de um Select num campo de uma tabela, e quando chamamos essa mesma tabela ela devolve o select que tem dentro do campo???
Rechousa Posted February 27, 2014 at 11:00 AM Report #546842 Posted February 27, 2014 at 11:00 AM Olá, O SQL Server permite campos calculados, mas não podem ter referências a tabelas externas. A única forma de o fazeres é usares uma vista ou uma Stored Procedure. Espero ter ajudado, Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
jafm Posted February 27, 2014 at 11:03 AM Author Report #546843 Posted February 27, 2014 at 11:03 AM o ultimo teste que fiz foi colocar uma StoredProcedure, no campo, mas quando tento chamar só me devolve o nome do sp.
nelsonr Posted February 27, 2014 at 11:04 AM Report #546844 Posted February 27, 2014 at 11:04 AM Queres guardar um query num campo? Não pode ser um campo varchar e guardar como um texto normal? Ou o objectivo é executar um query vindo de um texto? Não será algo como o EXECUTE ? http://technet.microsoft.com/en-us/library/ms188332.aspx
jafm Posted February 27, 2014 at 11:11 AM Author Report #546847 Posted February 27, 2014 at 11:11 AM Sim quero guardar uma query ou StoredProcedure num campo. Então qual seria o tipo de campo a guardar?
Rechousa Posted February 27, 2014 at 11:12 AM Report #546848 Posted February 27, 2014 at 11:12 AM (edited) Desculpa, acho que percebi mal a pergunta. Pelo que estou a entender queres colocar um "statement" SQL numa coluna e executá-lo "on-the-fly". Pois bem, que eu tenha conhecimento não podes. A única solução que me estou a lembrar é usares o EXECUTE, tal como o @nelsonr descreveu, mas o EXECUTE executa um comando e não consegues usar dentro um SELECT. A única hipótese que estou a ver é: - tens uma Stored procedure; - teres uma tabela temporária; - inseres todos os dados na tabela temporária; - percorres com um ciclo WHILE os registos da tabela temporária (também pode ser com um cursor); - para cada registo vais buscar o statement, executas o statement e fazes um UPDATE do campo que pretendes retornar (seria o que contém o statement) com o valor que recebeste do statement; - no fim, retornas a tabela temporária Espero ter ajudado, mas não recomendo nada essa solução, acho-a muito pouco eficiente. Edited February 27, 2014 at 11:13 AM by Rechousa Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
nelsonr Posted February 27, 2014 at 11:19 AM Report #546851 Posted February 27, 2014 at 11:19 AM jafm, podes descrever exactamente o que pretendes fazer com o conteúdo guardado? Pretendes executar a partir do próprio SQL ou estás a fazer uma aplicação que irá executar esse conteúdo?
jafm Posted February 27, 2014 at 11:26 AM Author Report #546853 Posted February 27, 2014 at 11:26 AM Estou a pensar fazer numa aplicação. Mas queria que a aplicação só tivesse uma query. e depois alterava a condição perante o nome da label, textbox através do where. Pra isso criava uma tabela com 2 campos (tipo e query) em que o tipo seria o nome da label, e query o resultado de uma dada query No fundo o que queria era tentar usar apenas uma query em todo o código. Mas pelo que estou a ver o sql não permite isso...
jafm Posted February 27, 2014 at 11:41 AM Author Report #546858 Posted February 27, 2014 at 11:41 AM Bem, com as vossas perguntas consegui perceber onde estava minha dúvida/problema... se passar a query através de uma string numa aplicação já consigo obter o EXEC. e ai sim posso colocar a query ou sp que quiser no campo...
nelsonr Posted February 27, 2014 at 11:42 AM Report #546859 Posted February 27, 2014 at 11:42 AM Então mas isso consegues fazer. Na aplicação deves ter lá qual o comando a executar numa string. Basta construires a string com base no query guardado
Rechousa Posted February 27, 2014 at 11:43 AM Report #546860 Posted February 27, 2014 at 11:43 AM Sim, já consegues obter o STATEMENT (pode ser EXEC, SELECT, seja lá o que for, desde que seja uma instrução SQL válida) e executar, mas cuidado que rapidamente podes obter baixa performance ao "abusares" das ligações às bases de dados. Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now