Usuário com melhor resposta
Guardar uma linha em uma variavel, utilizando cursor

Pergunta
-
--Declarando cursor DECLARE crTeste --Nome do cursor CURSOR FOR -- Select utilizado para o cursor SELECT * FROM empresa.dbo.' + @Original + ' original WHERE NOT EXISTS ( SELECT '+@chavePk+' FROM empresa_historico.dbo.' +@historico+ ' historico WHERE original.'+@chavePk+' = historico.'+@chavePk+' AND cod = '+@codigo+') --Iniciando transação BEGIN TRANSACTION --Abrindo cursor OPEN crTeste FETCH crTeste --Fechando e desalocando cursor CLOSE crTeste DEALLOCATE crTeste --Confirmando transação COMMIT TRANSACTION
Eu quero guardar a linha inteira numa variavel, é possivel??
Quero fazer isso pra depois fazer um insert da linha toda em outra tabela!
Respostas
-
Bom Dia,
Não é possível colocar uma linha em uma variável. O que você pode fazer é converter todas as colunas para VARCHAR e concatená-las colocando o resultado em uma variável VARCHAR.
Se a idéia é fazer um INSERT da linha em uma tabela não seria mais fácil fazer um INSERT com SELECT ? Isso seria muito mais performático que o uso de um cursor.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 27 de abril de 2010 13:27
- Marcado como Resposta LeticiaAmorim quarta-feira, 25 de agosto de 2010 15:02
Todas as Respostas
-
Bom Dia,
Não é possível colocar uma linha em uma variável. O que você pode fazer é converter todas as colunas para VARCHAR e concatená-las colocando o resultado em uma variável VARCHAR.
Se a idéia é fazer um INSERT da linha em uma tabela não seria mais fácil fazer um INSERT com SELECT ? Isso seria muito mais performático que o uso de um cursor.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 27 de abril de 2010 13:27
- Marcado como Resposta LeticiaAmorim quarta-feira, 25 de agosto de 2010 15:02
-
-
Olá Letícia,
A leitura do cursor é feita linha a linha e o INSERT SELECT é feita leituras em blocos. Não há como um cursor que lê linha a linha superar o desempenho de um INSERT com SELECT direto. O cursor além de mais lento incorre mais codificação.
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Classifique as respostas. O seu feedback é imprescindível -
-
-