Um cursor é uma estrutura de programação de banco de dados SQL que a maioria dos programadores de banco de dados para tentar evitar , sempre que possível . Um banco de dados SQL é construída para processar grupos de registros , ou " conjunto de dados ", mas um cursor é projetado para lidar com apenas um único registro de cada vez --- e eles também podem bloquear todos os outros programas fora das tabelas que fazem referência até que sejam finalmente feito. Substituindo cursores com estruturas diferentes é quase sempre uma boa prática de programação SQL. Emular um cursor com um While Loop
A While é semelhante a uma estrutura de cursor , mas não carrega as mesmas penalidades de bloqueio . Portanto , pode levar quase tão longo para processo, mas não bloqueia os outros programas fora das mesas está usando
Um exemplo de uma estrutura Enquanto : .
Enquanto condição ( o programa irá ciclo enquanto a condição for verdadeira )
Comece
código ( este código será executado uma vez em cada passagem pelo loop While )
Fim
definir uma função
SQL possui funções definidas pelo usuário . Ao invés de reunir todos os resultados e , em seguida, analisá-los um de cada vez com um cursor , a função definida pelo usuário pode ser usado como parte da instrução SELECT .
Para colocar uma função definida pelo usuário em um Select consulta, use a seguinte estrutura:
Selecione nome, sobrenome , dbo.user_function ( account_balance ) como AverageBalance
Construa uma expressão de tabela comum
Pense em uma expressão de tabela comum como envenenado tabela temporária. . Você pode construir uma expressão de tabela comum , usando uma variedade de consultas padrão e , em seguida, trabalhar com eles como se fossem tabelas SQL padrão
A estrutura de uma expressão de tabela comum é :
Com my_CTE (
padrão consultas seleção aqui
);
Depois my_CTE foi definido, alguma dúvida pode referenciá-lo como se fosse uma tabela
.
Adicionar uma coluna de identidade
uma das razões mais comuns para usar um cursor é para percorrer uma tabela que não tem uma coluna de identidade --- isto é, um identificador único para cada linha da tabela . Sem esse identificador , é muito difícil trabalhar com os dados com consultas Seletas padrão. Modificando a tabela para adicionar uma coluna de chave primária resolve esse problema e deve eliminar a necessidade de um cursor para examinar cada registro individual.